目錄
鍊錶是線性表的鏈式儲存結構,它可以以o(1)的時間複雜度進行插入或者刪除,同時由於是鏈式結構相比順序表而言,不會存在空間浪費的情況。而鍊錶又分為帶頭單向鍊錶,不帶頭單向鍊錶,帶頭迴圈鍊錶,不帶頭迴圈鍊錶,帶頭雙向迴圈鍊錶,不帶頭雙向迴圈鍊錶,帶頭雙向鍊錶,不帶頭雙向鍊錶,總共有八種,其中結構最簡單的www.cppcns.com是不帶頭單向鍊錶,也是實現起來最容易出錯的。並且我們在網上進行鍊錶的oj時,題目基本也是不帶頭的單向鍊錶,而且也是網際網路大廠面試中最容易考的。
typedef int sltdadatype;//存放的資料型別
struct slistnode
;typedef struct slistnode slistnode;
slistnode* buylistnode(sltdadatype x);//建立乙個節點
slistnode* slistpushback(slistnode* head, sltdadatype x);//尾插
slistnode* slistpopback(slistnode* head);//頭插
slis slistpushfornt(slistnode* head, sltdadatkuvrketeype x);//尾刪
slistnode* slistpopfornt(slistnode* head);//頭刪
slistnode* slistfind(slistnode* head, sltdadatype x);//查詢乙個節點
void slistmodify(slistnode* head, sltdadatype x,sltdadatype y);//x修改
slistnode* buylistnode(sltdadatype x)
slistnode* slistpushback(slistnode* head, sltdadatype x)
else //頭節點不為空,直接遍歷到鍊錶結尾進行尾插
tail->_next = newnode;
return head;
}}slistnode* slistpushfornt(slistnode* head, sltdadatype x)
slistnode* slistpopback(slistnode* head)
else if (head->_next== null)
else
free(tail);
if (prev != null)
prev->_next = null;
return head;
}}slistnode* slistpopfornt(slistnode* head)
else
}slistnode* slistfind(slistnode* head, sltdadatype x)
else
}return null;
}void slistmodify(slistnode* head, sltdadatype x, sltdadatype y)//x修改
else
}最後,也請大家多多支援,求關注!!!
迴圈鍊錶的增 刪 查 改(c語言)
雙向迴圈鍊錶的增刪查改操作 在鍊錶中增加元素我採用的在乙個數的前面插入,因為是雙向的所以在後面插入也可以,由於上篇部落格寫了乙個單鏈表的增刪查改用的在乙個數的後面插入,所以現在用在前面插入。如下 include include pragma warning disable 4996 typedef ...
C語言 單向鍊錶的增刪改查
什麼是鍊錶?1.和陣列一樣,鍊錶也是一種線性表 2.從記憶體結構來看 鍊錶的記憶體結構是不連續的記憶體空間,是將一組零散的記憶體塊串聯起來,從而進行資料儲存的資料結構。3.鍊錶中的每乙個記憶體塊被稱為節點node。節點除了儲存資料之外,還要記錄鏈上 下乙個節點的位址,即後繼指標next。1.查詢單向...
鍊錶的增刪查改
include include typedef struct student stu,pstu void list head insert pstu pphead,stu pptail,int i 鍊錶為空,頭尾指標都指向新節點 else 新節點 pnext指向原本頭節點,新節點作為頭節點 void...