單鏈表的增刪查改

2021-10-01 05:20:44 字數 3077 閱讀 1202

本篇部落格主要介紹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...