python實現雙鏈表

2021-09-27 04:45:15 字數 1731 閱讀 8112

listvalue = [1, 5, 6, 2, 7, 3]

listright = [3, 2, 4, 5, -1, 1]

listleft = [-1, 5, 1, 0, 2, 3]

# 正向遍歷

head = listleft.index(-1)

print(listvalue[head])

next = listright[head]

while next > -1:

print(listvalue[head])

next = listright[head]

# 反向遍歷

head = listright.index(-1)

print(listvalue[head])

next = listleft[head]

while next > -1:

print(listvalue[head])

next = listleft[head]

def output(listvalue, listright, head):

print(listvalue[head])

next = listright[head]

while next != -1:

print(listvalue[next])

next = listright[next]

listvalue = [1, 5, 6, 2, 7, 3]

listright = [3, 2, 4, 5, -1, 1]

listleft = [-1, 5, 1, 0, 2, 3]

head = 0

prepos = 5 # 要插入的位置的上乙個元素的位置

output(listvalue, listright, head)

print('--------------')

listright[prepos] = len(listvalue) - 1 # 將前後元素的指標指向新元素

listleft[listright[prepos]] = len(listvalue) - 1

output(listvalue, listright, head)

def output(listvalue, listright, head):

print(listvalue[head])

next = listright[head]

while next != -1:

print(listvalue[next])

next = listright[next]

listvalue = [1, 5, 6, 2, 7, 3]

listright = [3, 2, 4, 5, -1, 1]

listleft = [-1, 5, 1, 0, 2, 3]

head = 0

prepos = 5 # 要插入的位置的上乙個元素的位置

output(listvalue, listright, head)

print('--------------')

listright[prepos] = listright[listright[prepos]]

listleft[listright[listright[prepos]]] = prepos

output(listvalue, listright, head)

python 實現雙鏈表

雙鏈表和單鏈表進行比較的優點與不同 節點多了乙個前驅指標域 在很多基本操作上,多了一種選擇,因為雙鏈表可以向前進行移動尋位 如果給每個節點新增乙個對應的下標,那麼在尋找節點時,我們可以使用二分發來進行節點的定址工作,這相對於單鏈表是乙個效能的優化 7 8 python實現雙鏈表 9 10 class...

雙鏈表實現

一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二 實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。三 源 includeconst i...

雙鏈表實現

以前寫的不帶頭的單鏈表實現,當時也啥也沒學,好多東西不知道,加上一心想壓縮 減少情況,所以寫得不太好。請教了老師,首先是命名問題和 緊湊性等的改進。還有可讀性方面的改進,多寫了一些注釋。並且因為帶頭的比較好寫,好操作,所以標準寫法也不是很長,繁瑣。下面貼 include include includ...