class
heronode2
@override
public string tostring()
';}}
public
void
add(heronode2 heronode)
temp = temp.next;
}//退出while時候,temp就指向了鍊錶的最後,指向新的node
temp.next = heronode;
heronode.pre = temp;
}
//遍歷
public
void
list()
//頭節點不能動,所以要乙個輔助變數來遍歷
heronode2 temp = head.next;
while
(true
) system.out.
println
(temp)
; temp = temp.next;
}}
//修改節點資訊,根據編號來改正,但編號不能改正
//雙向鍊錶修改和單鏈表一樣
public
void
update
(heronode2 newheronode)
//定義乙個輔助變數
heronode2 temp = head.next;
//是否找到要修改的變數
boolean flag =
false
;while
(true)if
(temp.no == newheronode.no)
temp = temp.next;
}//根據flag判斷是否找到要修改的node
if(flag)
else
}
//刪除節點
//對於雙向鍊錶,可以直接找到要刪除的節點,自我刪除即可
public
void
del(
int no)
//輔助變數
heronode2 temp = head.next;
//標識是否找到節點
boolean flag =
false
;while
(true
)//找到待刪除節點的前乙個節點temp
if(temp.no == no)
temp = temp.next;}if
(flag)
}else
}
public
static
void
main
(string[
] args)
資料結構學習筆記二 雙向鍊錶
雙向鍊錶 雙鏈表 是鍊錶的一種。和單鏈表一樣,雙鏈表也是由節點組成,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。表頭為空,表頭的後繼節點為 節點10 資料為10的節點 節點10...
資料結構四雙向鍊錶
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。而之前的單鏈表為單向鍊錶,雙向鍊錶也就是在單鏈表的結點中增加乙個指向其前驅的pre指標。如圖 這裡介紹雙向鍊錶的常用操作 l ...
資料結構 003雙向鍊錶
雙鏈表 include using namespace std typedef int elemtype typedef struct lnode lnode,linklist 初始化 linklist init linklist 頭插法建立鍊錶 linklist head insert linkl...