作者shadown ()
看板C_and_CPP
标题[问题] 程式的逻辑问题
时间Mon Apr 27 17:58:39 2009
最近遇到一个面试官,有问到我一个问题,是关於串列
方面的。
题目是:连续输入几个数字,最後输入零表示程式结束。
之後再输入一个数字,将前面输入的数字与此
数比较,印出比此数大的数字。
我的解答,是用while来判断串列中的data值是否为零,
是的话表示资料已经到最後一笔,结束比较大小的判断。
面试官的解答,是用while来判断串列中的next值是否为
NULL,是的话表资料已经到最後一笔,结束比较大小的判
断。
面试官的回答虽然在逻辑上是比较合理,但我觉得我的方
法应该也不能算错,毕竟题目是说用零来当结束。所以想
请教一下各位前辈,我这样算是错的吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.117.77
1F:推 littleshan:不算错,但用你的方法会多存一个node 04/27 18:03
2F:→ shadown:喔..我懂你的意思了,因为我最後一笔存的是零,所以会多一个 04/27 18:08
3F:→ shadown:node 04/27 18:08
4F:→ shadown:所以说,串列一般是不存不需要的资料这样吗? 04/27 18:09
5F:推 VictorTom:以这个case来说似乎是不需要, 另外直接用next判断是否还 04/27 18:11
6F:→ shadown:我在前面输入资料时,是先把资料存入串列,再判断是不是零. 04/27 18:11
7F:→ VictorTom:有data有个好处是, 如果今天0不是特别用来当做输入结束 04/27 18:12
8F:→ shadown:因为是想说,不用再多宣告一个暂存变数,结果反而造成多存一 04/27 18:12
9F:→ VictorTom:的话, 你靠data判断list结束的方式就可能不适用:) 04/27 18:12
10F:→ shadown:node了,面试官对这题的回答是直接说我错了..= = 04/27 18:12
11F:→ adrianshum:当然了, linked list 一向都是以 next == null 来作为 04/27 18:12
12F:→ adrianshum:完结 04/27 18:12
13F:推 Ebergies:如果我是面试官不会算你错. 但应该也不会问这问题吧... 04/27 18:43