雖然從表內第乙個節點到最後乙個節點的遍歷操作是非常簡單的,但是反向遍歷鍊錶卻不是一件容易的事情。如果為node類新增乙個欄位來儲存指向前乙個節點的連線,那麼久會使得這個反向操作過程變得容易許多。當向鍊錶插入節點的時候,為了吧資料複製給新的字段會需要執行更多的操作,但是當腰吧節點從表移除的時候就能看到他的改進效果了。
首先需要修改node類來為累增加乙個額外的鏈結。為了區別兩個連線,這個把指向下乙個節點的鏈結稱為flink,而吧指向前乙個節點的連線稱為blink.在例項化乙個node的時候,會把這些欄位都設定為nothing.
public
class linkedlist
private node find(object item)
return current;
}public
void
insert(object newitem, object after)
public
void
remove(object n)
}private node findlast()
return current;
}public
void
printlist()
}public
void
printreverse()
}}
資料結構與演算法 雙向鍊錶
typedef struct lineline line initline line head return head line insertline line head,int data,int add else 判斷條件為真,說明插入位置為鍊錶尾 if body next null else r...
資料結構與演算法 雙向鍊錶
ps 前面已經說過線性表的兩種表現形式,一種是順序,另一種是鏈式,鏈式的一種普通表現形式就是加入乙個指標,前乙個的指標指向後乙個結點的位址,那麼還有一種形式就是雙向鍊錶,裡面又加上了乙個指標變數,讓前指標變數指向直接前驅,後指標變數指向直接後繼。建立結構體 typedef struct double...
資料結構與演算法 資料結構之雙向鍊錶
雙向鍊錶自我感覺修改的時候有點繞,不過還好,如果實在不理解一定記得畫圖,其實很容易,但是想出來容易漏掉一些步驟,總之就是多動手 package org.yc public class test class doublelinkedlistheadelse temp.next studentnode ...