雙向鍊錶實現水滸排行增刪改查

2021-10-08 05:30:00 字數 2736 閱讀 1250

雙向鍊錶與單向鍊錶的不同在於,容易出現空指標異常

在新增時:

heronode.pre = temp;

if(temp.next!=null)

temp.next = heronode;

如果剛好是最後乙個裡面新增,需要 temp.next!=null的限制

在刪除時,

有兩種情況:

//刪除的不是最後乙個節點則

if(temp.next!=null)

else

class

heronode

//重寫tostring

public string tostring()

class

doublelinkedlist

public

void

add(heronode heronode)

if(temp.next.no>heronode.no)

if(temp.next.no == heronode.no)

temp = temp.next;

}//新增

if(flag)

else

temp.next = heronode;

}}

//修改

public

void

update

(heronode heronode)

heronode temp = head.next;

boolean flag =

false

;while

(true)if

(heronode.no == temp.no)

temp = temp.next;}if

(flag)

else

}

public

void

delete

(int no)

heronode temp = head.next;

boolean flag =

false

;while

(true)if

(temp.no == no)

temp = temp.next;}if

(flag)

else

system.out.

println

("刪除成功");

}else

}

public

void

list()

heronode temp = head.next;

while

(true

) system.out.

println

(temp)

; temp = temp.next;

}}

package linkedlist;

public

class

doublelinklist

}class

doublelinkedlist

public

void

list()

heronode temp = head.next;

while

(true

) system.out.

println

(temp)

; temp = temp.next;}}

public

void

add(heronode heronode)

if(temp.next.no>heronode.no)

if(temp.next.no == heronode.no)

temp = temp.next;

}//新增

if(flag)

else

temp.next = heronode;}}

//修改

public

void

update

(heronode heronode)

heronode temp = head.next;

boolean flag =

false

;while

(true)if

(heronode.no == temp.no)

temp = temp.next;}if

(flag)

else

}public

void

delete

(int no)

heronode temp = head.next;

boolean flag =

false

;while

(true)if

(temp.no == no)

temp = temp.next;}if

(flag)

else

system.out.

println

("刪除成功");

}else}}

class

heronode

//重寫tostring

public string tostring()

}

雙向鍊錶的增刪改查

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

雙向鍊錶的增刪改查

雙向鍊錶增刪改查 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢 單向鍊錶不能自我刪除,需要輔助節點,而雙向鍊錶可以自我刪除,public class doublelinkedlistdemo class doublelinkedlist 遍歷雙向鍊錶的方法,顯示鍊錶 遍歷 pub...

雙向鍊錶的增刪改查操作

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