作者ohyeah5566 (兵者,國之大事)
看板C_and_CPP
標題[問題] 鏈結串列 修改主程式傳入的節點
時間Tue Apr 21 21:28:49 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS C++
問題(Question):
想修改傳入主程式的節點內容
預期的正確結果(Expected Output):
將原本是dummy node的節點 刪除
把data為1的節點當作是新的起始節點
也就是讓主程式的node.data == 1
錯誤結果(Wrong Output):
無法將函式裡面修改的dummy node 順利的讓主程式也是同樣的結果
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/td1efQyp
補充說明(Supplement):
有查過置底13誡 問題很像第13點
不過當初在主程式宣告的不是指標
所以有試過retrun沒辦法
阿 至於為什麼要寫兩層函式.....
因為我原本的code 函式first是用來搜尋
將找到的資料再丟到second處理
一般的資料都可以 但只有當找到的資料等於第一筆的時候會失敗
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.27.7
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429622935.A.64E.html
→ shadow0326: 為什麼不直接讓第一個node.data=1就好? for從i=1開始 04/21 21:34
可是 以後若是要刪掉1 將node.data=2 這樣還是GG
→ shadow0326: 第一個node和其他node都用動態配置,保持一致比較清楚 04/21 21:44
→ shadow0326: 這樣你只要用一個Node *head指你想要的位置就好 04/21 21:45
→ shadow0326: 要刪掉的node記得free掉 04/21 21:46
改宣告成指標一下就成功了! 使用上還滿直觀的xD
而且居然沒出現以前的bug (串列裡的資料最後都會變成最後一個增加的值
謝囉~
※ 編輯: ohyeah5566 (114.39.27.7), 04/21/2015 22:11:05