上面我已經把三個觀念都講了
接下來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)