本篇部落格主要介紹c資料結構中的單鏈表有關的增刪查改操作,並且介紹列表的快慢指標,鍊錶的逆置和合併等用法,廢話不說直接上**
#pragma once
#include
#include
#include
typedef
int datetype;
typedef
struct plistnode
plistnode;
plistnode*
getnode
(datetype x)
;void
print
(plistnode* plist)
;//列印函式
void
pushback
(plistnode*
* pplist, datetype x)
;//尾插
void
popback
(plistnode*
* pplist)
;//尾刪
void
pushfront
(plistnode*
* pplist, datetype x)
;//頭插
void
popfront
(plistnode*
* pplist)
;//頭刪
plistnode*
listfind
(plistnode* plist, datetype x)
;//在pos的前面進行插入
void
listinsertafter
(plistnode*
* pos, datetype x)
;//在乙個鍊錶的pos位後插入
void
slisteraseafter
(plistnode*
* pos)
;//刪除某個鍊錶pos後的乙個節點
plistnode*
middlenode
(plistnode*
* head)
;//返回鍊錶的中間節點(快慢指標實現)
plistnode*
reverselist1
(plistnode*
* head)
;//逆轉鍊錶(改變指標方向)
plistnode*
reverselist2
(plistnode*
* head)
;//逆轉鍊錶(頭插法每乙個原煉錶值插入新鍊錶)
plistnode*
findknode
(plistnode*
* head,
int k)
;//返回該鍊錶中倒數第k個結點(含第k個節點)後所有結點(快慢指標實現)
#include
"slist.h"
void
print
(plistnode* plist)
//列印函式
printf
("\n");
}plistnode*
getnode
(datetype x)
//得到乙個新的節點,並將要插入得值賦給該節點
void
pushback
(plistnode*
* plist, datetype x)
//尾插
}void
popback
(plistnode*
* plist)
//尾刪
else
free
(cur)
; cur =
null
; prv->_next =
null;}
}void
pushfront
(plistnode*
* plist, datetype x)
//頭插
}void
popfront
(plistnode*
* plist)
//頭刪
else
}plistnode*
listfind
(plistnode* pslist, datetype x)
//查詢函式
return
null;}
void
listinsertafter
(plistnode*
* pos, datetype x)
//在乙個鍊錶的pos位後插入
void
slisteraseafter
(plistnode*
* pos)
//刪除某個鍊錶pos後的乙個節點
plistnode*
middlenode
(plistnode*
* head)
//返回鍊錶的中間節點(快慢指標實現)
return slow;
}plistnode*
reverselist1
(plistnode*
* head)
//逆轉鍊錶(改變指標方向)
return n1;
}plistnode*
reverselist2
(plistnode*
* head)
//逆轉鍊錶(頭插法每乙個原煉錶值插入新鍊錶)
return newhead;
}plistnode*
findknode
(plistnode*
* head,
int k)
//返回該鍊錶中倒數第k個結點(含第k個節點)後所有結點(快慢指標實現)
while
(fast !=
null
)return slow;
}
#include
"slist.c"
void
text()
intmain()
單鏈表的增刪查改
include includetypedef struct nodenode,linklist int num 查詢給定值的結點,返回結點指標 node findvalue char c,node head return head 查詢給定位置的結點的值 char findindex value n...
單鏈表的增刪查改
鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 資料域和指標域 特點 1 可以方便的進行擴充。2 可以方便的刪除和插入。例子如下 include i...
單鏈表的實現(增 刪 查 改功能)
標頭檔案函式 ifndef slistnode h define slistnode h typedef int datatype typedef struct slistnode slistnode slistnode buyslistnode datatype x void slistprint...