無頭單向不迴圈鍊錶
#include
#include
// slist.h
typedef
int sltdatetype;
typedef
struct slistnode
slistnode;
// 動態申請乙個節點
slistnode*
buyslistnode
(sltdatetype x)
// 單鏈表列印
void
slistprint
(slistnode* plist)
printf
("\n");
}// 單鏈表尾插
void
slistpushback
(slistnode*
* pplist, sltdatetype x)
cur-
>next = node;
cur = cur-
>next;
cur-
>next =
null;}
}// 單鏈表的頭插
void
slistpushfront
(slistnode*
* pplist, sltdatetype x)
}// 單鏈表的尾刪
void
slistpopback
(slistnode*
* pplist)
else
free
(cur)
;prev-
>next =
null;}
}}// 單鏈表頭刪
void
slistpopfront
(slistnode*
* pplist)
// 單鏈表查詢
slistnode*
slistfind
(slistnode* plist, sltdatetype x)
return
null;}
// 單鏈表在pos位置之後插入x
// 分析思考為什麼不在pos位置之前插入?
//在pos之前插入需要遍歷整個鍊錶,時間複雜度為o(n);
void
slistinsertafter
(slistnode* pos, sltdatetype x)
}// 單鏈表刪除pos位置之後的值
// 分析思考為什麼不刪除pos位置?
// 刪除pos位置需要遍歷整個鍊錶找到pos的前驅節點,才可以刪除pos節點
void
slisteraseafter
(slistnode* pos)
}// 單鏈表的銷毀
void
slistdestory
(slistnode*
* plist)
else}}
intmain()
帶頭雙向迴圈鍊錶// 帶頭+雙向+迴圈鍊錶增刪查改實現
typedef
int ltdatatype;
typedef
struct listnode
listnode;
// 建立返回鍊錶的頭結點.
listnode*
listcreate()
// 雙向鍊錶銷毀
void
listdestory
(listnode* phead)
phead-
>_next = phead;
phead-
>_prev = phead;
}// 雙向鍊錶列印
void
listprint
(listnode* phead)
putchar
('\n');
}// 雙向鍊錶尾插
void
listpushback
(listnode* phead, ltdatatype x)
// 雙向鍊錶尾刪
void
listpopback
(listnode* phead)
}// 雙向煉表頭插
void
listpushfront
(listnode* phead, ltdatatype x)
// 雙向煉表頭刪
void
listpopfront
(listnode* phead)
}// 雙向鍊錶查詢
listnode*
listfind
(listnode* phead, ltdatatype x)
return
null;}
// 雙向鍊錶在pos的前面進行插入
void
listinsert
(listnode* pos, ltdatatype x)
// 雙向鍊錶刪除pos位置的節點
void
listerase
(listnode* pos)
}
無頭單向非迴圈鍊錶
首先建立乙個標頭檔案存放所需要的函式功能的宣告slist.h ifndef slist h define slist h include include include include typedef int sltdatatype typedef struct slistnodeslistnode...
單向有頭不迴圈鍊錶
鍊錶是一種常見的基礎資料結構,是一種線性表,是一種物理儲存單元上非連續 非順序的儲存結構。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括儲存資料元素的資料域和儲存下乙個結點位址的指標域兩個部分。相比於線性表順序結構,操作複雜。資料元素的邏輯順序也是通過鍊錶中...
帶頭雙向迴圈鍊錶
首先,我們來看一下帶頭雙向迴圈鍊錶的結構 目錄 帶頭雙向迴圈鍊錶結點的定義 相關操作介面 1 初始化 獲取乙個結點 2 銷毀鍊錶 3 尾插 4 頭插 5 指定元素查詢 6 任意位置插入 7 尾刪 8 頭刪 9 任意位置刪除 10 列印鍊錶 附上完整 typedef int datatype type...