看板 NTUE-CS100 關於我們 聯絡資訊
上面我已經把三個觀念都講了 接下來linked list就簡單啦 來做功能1)串頭 先用概念圖講解,這是一個linked list 現在我們要插入一個新node ■ head→□→□→□→□→□ ↑ ■要插在head跟□之間 兩個動作就可以完成 setp1.新node■的屁股指向原來的list頭□ step2. 將head指向新node■ 就完成新linked list啦 head→■→□→□→□→□→□ 就完成插入動作啦 int main(){ node* head=0; int input; while(1){ cout << "插入新資料: "; //讀進新資料 cin >> input; node* insertNode = new node; //new一個新node, //這個node的位址儲存在insertNode //step1. insertNode->next = head; //step2. head = insertNode; //插入finish! step1,2順序不能對調,原因自己想一下 //為了檢視我們的插入結果正不正確 //弄個function印出整個list ,funciton內容在下面 printList(head); } return 0; } void printList(node* head){ node* p = head; cout << "head->"; while(p){ //這行的意思等同p!=NULL,為什麼呢 //記得C++裡,零是False,非零就是true cout << p->data << "->" ; //print node data p = p->next; //p往後移動一個node } } 簡單講解,我們弄個個指標p,這個指標p指的位址一開始跟head相同 p ↓ head→□→□→□→□→□ 然後 每印出一個node data,就把p往後移動一個node 直到最後那個node屁股後已經沒東西了,也就是空指標才停止。 -- 夜精小德 Char - 巨龍之喉 (前月神殿) PvP -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.230 ※ 編輯: chchwy 來自: 203.68.15.230 (04/08 23:19)