看板 C_and_CPP 關於我們 聯絡資訊
不知到資料結構的問題能不能問@_@ 在做linked list的時候, 有首節點可以不必處理空串列的問題,也可以把首節點拿來記錄list長度 其實我不是很懂前句 我在寫linked list的時候,從來就沒想過要用首節點 都是用if判斷式解決空串列的問題〈例如要刪除節點而串列是空的〉 有首節點的話 一樣要判斷指標是不是指到首節點,而斷定串列是不是空的〈我不確定,因為不懂這裡〉 這樣的話,好像跟沒有的時候要判斷是一樣的,都要判斷 還是! 其實可以避免什麼很神奇又秘密的麻煩〈像指標沒指東西最好放null的感覺XD〉 有勞各位解惑了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.130.193
buganini:譬如說 你是空list的時候 你要建立first element 01/06 22:56
buganini:你必須持有那個指標的reference 如果傳進function 01/06 22:57
nowar100:有dummy node,link就一直不會是空的,不需用if判斷 01/06 22:57
buganini:就會有一些麻煩 必需要用兩層指標 01/06 22:57
buganini:有head你總是可以把新的掛在curr->next上面 01/06 22:58
conan77420:link不會是空的,可是還是要判斷有沒有要刪的資料吧? 01/06 23:03
conan77420:如果只有首節點,而又要delete,怎麼辦? 01/06 23:04
conan77420:b大的話我要思考一下0.0 01/06 23:04
buganini:刪的時候一樣 如果你在不同variable scope的function裡面 01/06 23:04
buganini:要刪到完的話 最後也是要讓指標=NULL 也是需要reference 01/06 23:05
buganini:這樣在first element的時候需要兩層指標 其他時候不用 01/06 23:05
buganini:就變得很麻煩 不如放個head 01/06 23:05
buganini:作業可能都開global variable在用的感覺不出來XD 01/06 23:06
conan77420:喔~b大的我懂了,這是實作上的好處 01/06 23:06
conan77420:原來不必處理空串列是這個意思呀XD 感謝解說 01/06 23:08
buganini:總是使用公用空間裡面的東西 就不用煩惱reference 01/06 23:15
buganini:private裡面的東西就讓他當個準常數吧 01/06 23:16