雙向鍊錶的增刪改查

2021-10-23 22:45:18 字數 1606 閱讀 6957

/**

* 雙向鍊錶增刪改查

* 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢

* 單向鍊錶不能自我刪除,需要輔助節點,而雙向鍊錶可以自我刪除,

*/public

class

doublelinkedlistdemo

}class

doublelinkedlist

//遍歷雙向鍊錶的方法,顯示鍊錶[遍歷]

public

void

list()

//因為頭節點不能動,需要輔助變數

heronode2 temp = head.next;

while

(true

)//輸出節點的資訊

system.out.

println

(temp)

;//將next後移

temp = temp.next;}}

//新增乙個節點到雙向鍊錶的最後

public

void

add(heronode2 heronode)

//如果沒有找到最後,將temp後移

temp = temp.next;

}//當退出while迴圈時,temp就指向了鍊錶的最後

//形成乙個雙向鍊錶

temp.next = heronode;

heronode.pre = temp;

}//修改乙個節點的內容,雙向跟單向鍊錶相同

public

void

update

(heronode2 newheronode)

//找到需要修改的節點,根據no編號

//定義乙個輔助變數

heronode2 temp = head.next;

boolean flag =

false

;//表示是否找到該節點

while

(true)if

(temp.no == newheronode.no)

temp = temp.next;

}//根據flag判斷是否找到要修改的節點

if(flag)

else

}//從雙向鍊錶中刪除乙個節點。對於雙向鍊錶,直接找到要刪除的節點,自我刪除即可

public

void

del(

int no)

heronode2 temp = head.next;

//輔助變數,要刪除的節點

boolean flag =

false

;//標誌是否找到待刪除節點

while

(true)if

(temp.no == no)

temp = temp.next;

//temp後移,遍歷

}//判斷flag

if(flag)

}else}}

//定義heronode,每個heronode物件就是乙個節點

class

heronode2

@override

public string tostring()

';}}

雙向鍊錶的增刪改查

package com.mjw.linkedlist 1.遍歷 和單鏈表的思路一致 2.新增 先找到雙向鍊錶的最後 temp.next new heronode newheronode.pre temp 3.修改也是和單鏈表的思路一致 4.刪除 因為是雙向鍊錶,可以自我刪除,直接找到要刪除的結點,比...

雙向鍊錶的增刪改查操作

阿濤,你要認真對待每一件事,你要瀟灑,你要做自己!前面複習了單向鍊錶和迴圈鍊錶的操作,寫得比較亂,現在寫個比較規整的雙向鍊錶的的各項操作。先上個截圖 全部 如下 include include define len sizeof struct doublelinklist typedef struc...

mysql增刪改查鍊錶 鍊錶的增刪改查

include include 先定義鍊錶裡面的元素。typedef struct nodemynode 定義整個鍊錶。typedef struct linkmylink int isempty to mylink mylink mylink 判斷鍊錶是否為空。int push to mylinki...