線性表學習歸納總結三 線性表鏈式儲存 不帶頭結點

2021-07-02 22:42:17 字數 731 閱讀 1388

線性表的鏈式儲存,需要考慮鍊錶是否帶有頭指標,是不是迴圈鍊錶,是不是雙鏈表

帶有頭結點的單鏈表

迴圈鍊錶

雙鏈表

ps:單鏈表中查詢第i個結點的存放位址時候,需要特別區分,i是否小於1,以及結點計數是否是從1開始

單鏈表第i個結點插入值為x的新結點,利用查詢第i個結點位址的函式進行定位,需要注意,當find函式返回null時候,要判斷是因為i為0,還是因為i超出當前鍊錶大小,i值超出鍊錶大小處理如下

if (!q && i != 0)

特別注意,插入結點作為鍊錶第乙個結點時候的處理

if (i==0)	//插入點作為單鏈表的第乙個結點

else

刪除結點時候,需要判斷鍊錶是否為空;不為空時候,查詢值為x的結點,並在查詢過程中,儲存該結點的前驅結點的指標;找到值為x的結點後,需要判斷該結點是否為鍊錶的第乙個結點

if (!pre && p->info==x)//要刪除的是第乙個結點

else

pre->next = p->next;

free(p);

線性表鏈式儲存

線性表鏈式儲存結構的建立 刪除最小值結點 值唯一 刪除某個指定值 不唯一 就地逆置 反向輸出 遞增排序 刪除重複結點 根據奇偶序號劃分成兩個帶頭結點的單鏈表。include stdio.h include stdlib.h typedef struct lnode lnode,llist void ...

線性表 鏈式儲存

概念 邏輯上相鄰的兩個資料元素在物理位置上可能相鄰也可能不相鄰,這中儲存結構為非順序映像或鏈式映像。特點 線性表的鏈式儲存結構的特點是可以用一組任意的儲存單元來儲存線性表中的資料,這組儲存單元可以是連續的,也可以是不連續的。由於這種特性,單鏈表中要取得第i個元素,必須從第乙個元素開始尋找,因此單鏈表...

線性表 鏈式儲存

基類 ifndef linearlist h define linearlist h filename linearlist.h creater qianchenglong date 2011 10 18 comments 線性表的抽象基類 template class linearlist lin...