[問題] link list串失敗

看板C_and_CPP (C/C++)作者 (kk)時間16年前 (2009/10/07 18:15), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/1
我寫一個結串列 我的作法是始終把新加入的node差到第一個後方 但是實際測試後發現第一個node永遠始終指向最後一個 不知道問題出在哪QQ 可以幫我看看我哪裡串錯嘛 while(1) { cin >> temp; if(temp == -1) break; if(totalNum == 0)//set the first node { firstNode->number = temp; firstNode->ptr = NULL; } else { tempNode2->number = temp; tempNode2->ptr = firstNode->ptr; firstNode->ptr = tempNode2; } totalNum++; } 順便請教一下如果我要插在會後一個應該怎改 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.19.162

10/07 18:19, , 1F
你的tempNode2沒有持續的new/malloc, 所以這個串列永遠
10/07 18:19, 1F

10/07 18:20, , 2F
只有firstNode和tempNode2兩個node.
10/07 18:20, 2F

10/07 18:21, , 3F
鍊串的基本, 1. 產生新node, 2. 把node加入linked-list
10/07 18:21, 3F

10/07 18:23, , 4F
至於要加在任意地方, 假設要加a->b的中間: 1. 將新node
10/07 18:23, 4F

10/07 18:23, , 5F
感謝 原來問題出在這個地方 哀哀記憶體配置的觀念常很差
10/07 18:23, 5F

10/07 18:23, , 6F
的next指到b, 將a的next指到新node; 找的動作就跑個迴
10/07 18:23, 6F

10/07 18:23, , 7F
圈找就了:)
10/07 18:23, 7F

10/07 18:27, , 8F
感恩:D
10/07 18:27, 8F
文章代碼(AID): #1Ap6fIj7 (C_and_CPP)
文章代碼(AID): #1Ap6fIj7 (C_and_CPP)