Python演算法 構建單鏈表,新增刪除元素

2021-09-29 02:29:11 字數 966 閱讀 2137

把鍊錶元素和鍊錶索引分別儲存在兩個list裡。

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

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

元素新增時,要先讓新元素指標指向後面的元素,再讓他前面的元素指標指向新元素!!!!!!

不然,先讓前面的元素(a)指向新元素(b),再找新元素後面的元素(c)時,c的索引本來在a裡,但是a已經改了,所以就找不到c了

元素刪除很簡單,讓被刪除元素b的前乙個元素a的索引,指向b的下乙個元素,即讓a的索引指向a的下下個

def printlist(listv, listr, head):   # 輸出鍊錶

print(listv[head])

next = listr[head]

while next != -1:

print(listv[next])

next = listr[next]

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

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

head = 0

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

printlist(listvalue, listright, head)

print()

listright[prepos] = len(listvalue)-1 # 上乙個元素的索引指向最後乙個元素,即新新增的

printlist(listvalue, listright, head)

print()

prepos2 = 1

listright[prepos2] = listright[listright[prepos2]]

printlist(listvalue, listright, head)

單鏈表的構建

鍊錶可以沒有頭結點,但是不能沒有頭指標.單鏈表中第乙個結點的儲存位置叫做頭指標,最後乙個結點的指標域為空,但是有資料域.整個鍊錶的訪問從頭指標開始.如果鍊錶有頭結點,那麼頭指標就是指向頭結點資料域的指標,如下圖所示 沒有頭結點的單鏈表如下所示 頭結點是為了操作方便和統一設立的,它的資料域一般無意義 ...

單鏈表演算法

遍歷 就是把單鏈表中的各個節點挨個拿出來,就叫遍歷 遍歷要點 不能遺漏,不能重複,追求效率 方法 從頭指標 頭節點 順著鍊錶掛接指標依次訪問鍊錶的各個節點,取出這個節點的資料,然後再往下乙個節點,知道最後乙個節點,結束返回 include include include 構建乙個鍊錶的節點 stru...

單鏈表演算法

設帶頭結點的非空單鏈表 l,設計乙個演算法刪除 l 中奇數序號 的結點,即刪除 l 中第 1 3 5 結點。應該是對的,唉,我也忘了 設計演算法刪除單鏈表奇數序號的節點 include include include define elemtype int typedef struct node l...