作者kkman0120 (kk)
看板C_and_CPP
標題[問題] 連結串列串失敗
時間Wed Oct 7 18:15:45 2009
我寫一個結串列
我的作法是始終把新加入的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
1F:推 VictorTom:你的tempNode2沒有持續的new/malloc, 所以這個串列永遠 10/07 18:19
2F:→ VictorTom:只有firstNode和tempNode2兩個node. 10/07 18:20
3F:→ VictorTom:鍊串的基本, 1. 產生新node, 2. 把node加入linked-list 10/07 18:21
4F:→ VictorTom:至於要加在任意地方, 假設要加a->b的中間: 1. 將新node 10/07 18:23
5F:→ kkman0120:感謝 原來問題出在這個地方 哀哀記憶體配置的觀念常很差 10/07 18:23
6F:→ VictorTom:的next指到b, 將a的next指到新node; 找的動作就跑個迴 10/07 18:23
7F:→ VictorTom:圈找就了:) 10/07 18:23
8F:→ kkman0120:感恩:D 10/07 18:27