後天就要程式設計考試了,今晚抓緊複習鍊錶ing!
這次就來總結一下鍊錶的六大基礎操作:
(1)建立鍊錶
(2)遍歷鍊錶
(3)在鍊錶中檢索
(4)向鍊錶中插入一項
(5)從鍊錶中刪除一項
(6)交換鍊錶中兩項的位置
全部都放在乙個**裡了,這樣好操作一點 /笑哭
至於鍊錶的引申操作,什麼頭插法尾插法的,都是這六大基礎操作之外的事情,有興趣的話煩請各位自己去了解啦,我這裡就不介紹了~
注釋都非常詳細,我是真的沒有啥時間畫圖做解釋了,將就著看吧~
(畢竟我個人也不喜歡一上來啥也不說就版**的,那會讓我很暴躁)
1 #include 2 #include3 #include 4
const
int size = 5;//
5個學生資訊節點作為測試樣例
5 typedef struct
student
6student;
1213 student* input(student* stu)//
操作①:建立鍊錶
1428
return
stu;29}
3031
void output(student* stu)//
操作②:從頭遍歷鍊錶(並輸出)
3239}40
41 student* check(student* stu)//
操作③:在鍊錶中檢索某個節點,並帶回主函式輸出(在這裡我以找到第乙個成績為66的學生資訊,帶回主函式輸出為例)
4250
else
51 54}
55return
p;56}57
58 student* insert_s(student* stu, student* temp)//
操作④:在鍊錶中插入乙個節點temp,並帶回主函式輸出
5967 temp->next = p->next;
68 p->next = temp;//
69return
stu;70}
7172 student* del(student* stu)//
操作⑤:刪除鍊錶中的某個節點,並帶回主函式,輸出
7382 q = p->next;
83 q = q->next;
84 free(p->next);//
釋放節點
85 p->next =q;
86return
stu;87}
8889 student* exchange(student*stu)
90105
while (flag2)//
定位節點q
106110
while (flag11)//
定位節點pp
111115
while (flag22)//
定位節點qq
116120
/****************==
*///
交換p->next和q->next
121 temp = p->next;
122 p->next = q->next;
123 q->next =temp;
124/*
***************==
*///
交換pp->next和qq->next
125 pp->next =q;
126 qq->next =p;
127/*
***************==
*///
交換p和q
128 p = pp->next;
129 q = qq->next;
130/*
***************==
*/131
return
stu;
132}
133134
intmain()
135
鍊錶基礎操作
1.鍊錶定義 struct listnode 2.鍊錶建立 方法一 尾插法 有頭結點 即輸出順序與插入順序一致 listnode head new listnode 0 head next null listnode p,r r head int x while cin x r next null ...
鍊錶基礎操作
結點所在類 pragma once include include singlelink.h templateclass node t get data node 單鏈表所在類 pragma once includeusing namespace std templateclass node 兩個模...
鍊錶的基礎操作實現
首先是構造鍊錶 include include define maxsize 100 typedef structsqlist 定義乙個結構體 void initlist sqlist l 構造乙個空的鍊錶 else printf 申請失敗 n int main 然後是填充這個鍊錶 插入鍊錶 inc...