[問題] 請問創建未知數量節點的串列

看板C_and_CPP (C/C++)作者 (tonygoog)時間10年前 (2015/12/10 20:09), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/1
目前對C語言串列還不是很熟悉 想請教一下大神有關串列的問題 假設我有n個裝置 都發資料(資料皆不相同)給中心裝置 我想把中心收到的資料建立成串列 之後能複製資料出來使用 n可能10個也可能20個 就一個未知的數量 該如何建立一個串列是擁有n個節點的呢 以下是我錯誤的程式碼主要部分 int i=0; struct node{ //建立節點結構 int data; struct node* next; }Node; Node* head=(struct node*)malloc(sizeof(struct node)); //頭指標 head->next=NULL; while(中心裝置buffer沒資料為止) //跑n次 { Node (*x)[i]=(struct node*)malloc(sizeof(struct node)); /我想這句是整個觀念錯誤 if(i==0) { x[i]->next=NULL; head->next=x[i]; x[i]->data=Buffer當時資料; } else { x[i]->next=NULL; x[i-1]->next=x[i]; x[i]->data=Buffer當時資料; } i++ } 我想程式的邏輯我應該錯的很離譜 但我用人的邏輯只能想到這樣表達了 網路資料大部分都是在一個串列新增一節點 或是建立以知數量節點的串列 請求大神們解惑了 該如何才能建立未知數量節點的串列 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.153.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1449749346.A.FC0.html

12/10 20:12, , 1F
一節一節貼上去啊
12/10 20:12, 1F

12/10 20:16, , 2F
我也是想一節一節加上去 但不知道正確的做法
12/10 20:16, 2F

12/10 20:24, , 3F
那句改成Node *x=...,[i]是給array用,你的Node不適用
12/10 20:24, 3F

12/10 20:25, , 4F
我建議先一個一個加上去,不要一次就想搞定全部
12/10 20:25, 4F

12/10 20:30, , 5F
這樣講你可能還是不懂,創建一個Node head與node2
12/10 20:30, 5F

12/10 20:31, , 6F
讓head->next=node2,node2->next=NULL,一個一個加上去
12/10 20:31, 6F

12/10 20:31, , 7F
你就知道while要怎麼寫了
12/10 20:31, 7F

12/10 20:51, , 8F
感謝你說的那一行我知道意思 但要搭配while我還不太懂
12/10 20:51, 8F

12/11 09:56, , 9F
buffer那邊就可以開始串了吧
12/11 09:56, 9F

12/11 09:59, , 10F
就是不知道i有多少才用link的不是嗎
12/11 09:59, 10F

12/11 10:01, , 11F
阿看懂了 手機排板好詭異
12/11 10:01, 11F
文章代碼(AID): #1MQMjY_0 (C_and_CPP)
文章代碼(AID): #1MQMjY_0 (C_and_CPP)