python實現獲取單向鍊錶倒數第k個結點的值示例

2022-09-28 19:06:09 字數 1298 閱讀 9742

#初始化鍊錶的結點

class node():

def __init__(self,itedqhejm):

self.item = item

self.next = none

#傳入頭結點,獲取整個鍊錶的長度

def length(headnode):

if headnode == none:

return none

count = 0

currentnode =headnode

#嘗試了一下帶有環的鍊錶,計算長度是否會死迴圈,確實如此,故加上了count限制 = =||

while currentnode != none and count <=1000:

count+=1

currentnode = currentnode.next

return count

#獲取倒數第k個結點的值,傳入頭結點和k值

def findrknode(head,k):

if head == none:

return none

#如果長度小於倒數第k個值,則返回通知沒有這麼長

elif length(head)前進,當fastpr走到尾部,lowpr此處的值正好為倒數的k值

while fastpr !=none:

fastpr = fastpr.next

lowpr = low程式設計客棧pr.next

return lowpr

if __name__ == "__main__":

node1 = node(1)

node2 = node(2)

node3 = node(3)

node4 = node(4)

node5 = node(5)

node6 = node(6)

node7 = node(7)

node8 = node(8)

node9 = node(9)

node10 = node(10)

node1.next = node2

node2.next = node3

node3.next = node4

node4.next = node5

node5.next = node6

node6.next = node7

node7.next = node8

node8.next = node9

node9.next = node10

print(findrknode(node1,5).item)

執行結果:

Python 實現單向鍊錶

鍊錶顧名思義就是 鏈 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的。跟陣列不同鍊錶不用預先定義大小,而且硬體支援的話可以無限擴充套件。陣列需要預先定義大小,無法適應資料動態地增減,資料小於定義的長度會浪費記憶體,...

Python 實現單向動態鍊錶

鍊錶顧名思義就是 鏈 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的。跟陣列不同鍊錶不用預先定義大小,而且硬體支援的話可以無限擴充套件。陣列需要預先定義大小,無法適應資料動態地增減,資料小於定義的長度會浪費記憶體,...

Python的單向鍊錶實現

思路 鍊錶由節點組成,先規定節點 node 包含data和指向下個節點的next 初始化data當然就是傳入的data了,next指向none 新增分兩種情況 鍊錶為空,那麼頭節點和尾節點都指向新插入的節點 鍊錶不為空,那麼直接在尾部新增即可 遍歷因為只有鍊錶的尾節點的next是指向none的,所以...