作者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