資料結構與演算法 雙向鍊錶

2021-07-23 06:28:29 字數 689 閱讀 7221

雖然從表內第乙個節點到最後乙個節點的遍歷操作是非常簡單的,但是反向遍歷鍊錶卻不是一件容易的事情。如果為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 ...