鍊錶的基本操作

2021-10-19 02:50:33 字數 2496 閱讀 2989

單向/雙向(引入了 prev 引用)

帶傀儡節點/不帶傀儡節點(dummy node)

帶環/不帶環

遍歷方式可利用 while 或者 for 迴圈來進行實現,主要**塊可展示為:

//for迴圈實現

for(node cur = head; cur != null; cur = cur.next)

//while迴圈實現

node cur = head;

while(cur != null)

1.遍歷 不帶傀儡節點的鍊錶

//遍歷 不帶傀儡節點的鍊錶

public

static

void

print

(node head)

}

2.遍歷 帶傀儡節點的鍊錶

//遍歷 帶傀儡節點的鍊錶

public

static

void

printwithdummy

(node head)

}

//尾插乙個節點

public

static

void

inserttail

(node head,

int val)

// 1)找到末尾節點

node prev = head;

while

(prev != null)

//迴圈結束的時候,cur 就是最後乙個節點

node newnode =

newnode

(val)

; newnode.next = prev.next;

prev.next = newnode;

}

//inserttail方法

public

static node inserttail

(node head,

int val)

node prev = head;

while

(prev.next != null)

newnode.next = prev.next;

prev.next = newnode;

return head;

}//main函式

public

static

void

main

(string[

] args)

//刪除節點-按值刪除

public

static

void

remove1

(node head,

int value)

// 2)迴圈結束,prev 指向待刪除的前乙個節點

if(prev == null || prev.next == null)

// 3)刪除這個節點 todelete 指向待刪除節點

node todelete = prev.next;

prev.next = todelete.next;

}//刪除節點-按位置刪除

public

static

void

remove2

(node head,node todelete)

if(prev == null)

// 2.進行刪除

prev.next = todelete.next;

}//按照 節點下標 進行刪除

public

static

intsize

(node head)

return size;

}public

static

void

remove3

(node head,

int index)

if(index ==0)

// 1.找到待刪除節點前乙個的位置:即 index-1

node prev = head;

for(

int i =

0;i < index -

1; i++

)//迴圈結束之後,prev 指向待刪除節點的前乙個位置

// 2.進行刪除操作

node todelete = prev.next;

prev.next = todelete.next;

}

2.「移花接木」刪除節點

不涉及鍊錶的遍歷,直接將待刪除節點之後的節點複製到待刪除節點處

缺點:無法刪除最後乙個節點

//「移花接木」刪除節點

public

static

void

remove4

(node head,node todelete)

鍊錶的基本操作

include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...

鍊錶的基本操作

鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...

鍊錶的基本操作。。。

include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...