20 12 16 單向建表和雙向鍊錶

2021-10-12 07:02:06 字數 1824 閱讀 1154

package linkedlist;

public

class

linkedlist

}//建立鍊錶管理我們的英雄

class

singlelinkedlist

temp = temp.next;

} temp.next = newhero;

system.out.

println

("新英雄"

+ newhero.

tostring()

);}//在鍊錶中新增乙個元素

public

void

addbyoder

(heronode newhero)

if(temp.no == newhero.no)

else

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

temp = temp.next;}if

(flag)

}//在鍊錶中刪除乙個元素

public

void

delectlink

(heronode newhero)

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

else

temp = temp.next;}}

//改變乙個英雄的屬性 這裡一定要注意 對於no的查詢一定要放在前面 不然在鍊錶最後新增英雄會失敗

public

void

changehero

(heronode newhero)

if(temp.next == null)

temp = temp.next;}if

(flag)

else}}

class

heronode

@override

public string tostring()

';}}

package linkedlist;

public

class

doublelist

}class

doublelistdemo

temp = temp.next;

} temp.next = newhero;

newhero.pre = temp;

}public

void

addmid

(heronode2 newhero)

//temp遍歷的英雄序號第一次大於newhero的序號時,就是所在點

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

if(temp.no == newhero.no)

temp = temp.next;}if

(flag)

}public

void

delecthero

(heronode2 newhero)

if(temp.no == newhero.no)

temp = temp.next;}if

(flag)

}public

void

changeheromessage

(heronode2 newhero)

if(temp.no == newhero.no)

temp = temp.next;}if

(flag)}}

class

heronode2

@override

public string tostring()

';}}

單向鍊錶和雙向鍊錶

1.單向鍊錶 單向鍊錶只可向乙個方向遍歷。查詢乙個節點的時候需要從第乙個節點開始每次訪問下乙個節點,一直訪問到需要的位置。也可以提前把乙個節點的位置另外儲存起來,然後直接訪問。2.雙向鍊錶 可以從任何乙個節點訪問前乙個節點,也可以訪問後乙個節點,以至整個鍊錶。一般是在需要大批量的另外儲存資料在鍊錶中...

單向鍊錶和雙向鍊錶

一 鍊錶是什麼?單向鍊錶linked list 是一種在物理上非連續 非順序的資料結構,由若干節點 node 所組成。而節點包括兩部分,一部分是存放資料的變數data,另一部分是指向下乙個節點的指標next。鍊錶的第1個節點被稱為頭節點,最後1個節點被稱為尾節點,尾節點的next指標指向空。注意 鍊...

單向鍊錶和雙向鍊錶區別 雙向鍊錶

一開始確實被這個雙向鍊錶整暈了,node裡面不停套node,簡直無限套娃,讓人不知道該怎麼下手。後來看了資料結構與演算法分析這本書的 才算整明白。我把鍊錶分成了三個部分 第一部分是node.node是乙個由兩根指標,以及我們需要儲存的資料構成的結構體。這個node就是無限套娃的起源,也是鍊錶用於儲存...