[問題] 程式的邏輯問題

看板C_and_CPP (C/C++)作者時間16年前 (2009/04/27 17:58), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串1/3 (看更多)
 最近遇到一個面試官,有問到我一個問題,是關於串列  方面的。  題目是:連續輸入幾個數字,最後輸入零表示程式結束。      之後再輸入一個數字,將前面輸入的數字與此      數比較,印出比此數大的數字。  我的解答,是用while來判斷串列中的data值是否為零,  是的話表示資料已經到最後一筆,結束比較大小的判斷。  面試官的解答,是用while來判斷串列中的next值是否為 NULL,是的話表資料已經到最後一筆,結束比較大小的判  斷。  面試官的回答雖然在邏輯上是比較合理,但我覺得我的方  法應該也不能算錯,畢竟題目是說用零來當結束。所以想  請教一下各位前輩,我這樣算是錯的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.117.77

04/27 18:03, , 1F
不算錯,但用你的方法會多存一個node
04/27 18:03, 1F

04/27 18:08, , 2F
喔..我懂你的意思了,因為我最後一筆存的是零,所以會多一個
04/27 18:08, 2F

04/27 18:08, , 3F
node
04/27 18:08, 3F

04/27 18:09, , 4F
所以說,串列一般是不存不需要的資料這樣嗎?
04/27 18:09, 4F

04/27 18:11, , 5F
以這個case來說似乎是不需要, 另外直接用next判斷是否還
04/27 18:11, 5F

04/27 18:11, , 6F
我在前面輸入資料時,是先把資料存入串列,再判斷是不是零.
04/27 18:11, 6F

04/27 18:12, , 7F
有data有個好處是, 如果今天0不是特別用來當做輸入結束
04/27 18:12, 7F

04/27 18:12, , 8F
因為是想說,不用再多宣告一個暫存變數,結果反而造成多存一
04/27 18:12, 8F

04/27 18:12, , 9F
的話, 你靠data判斷list結束的方式就可能不適用:)
04/27 18:12, 9F

04/27 18:12, , 10F
node了,面試官對這題的回答是直接說我錯了..= =
04/27 18:12, 10F

04/27 18:12, , 11F
當然了, linked list 一向都是以 next == null 來作為
04/27 18:12, 11F

04/27 18:12, , 12F
完結
04/27 18:12, 12F

04/27 18:43, , 13F
如果我是面試官不會算你錯. 但應該也不會問這問題吧...
04/27 18:43, 13F
文章代碼(AID): #19zO7GTF (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19zO7GTF (C_and_CPP)