以下為結點的定義:
class node():
def __init__(self,value,next = none):
self.value = value
self.next = next
length = 0 #鍊錶的長度,規定只有乙個頭結點時長度為0
判斷鍊錶是否為空:
def isempty():
return length == 0
將結點node插入到head之後:
def headinsert(head,node):
node.next = head.next
head.next = node
global length
length += 1
將結點插入到鍊錶尾:
def tailinsert(head,node):
p = head
while p.next != none:
p = p.next
p.next = node
global length
length += 1
給乙個結點,將新結點插入到給定結點之前:
def nodeinsert(onode,node):
node.next = onode.next
onode.next = node
node.value,onode.value = onode.value,node.value
global length
length += 1
刪除第index個結點:
def delete(head,index):
global length
if index <= 0 or index > length:
print('index輸錯了。')
else:
p = head
i = 1
while i != index:
p = p.next
i += 1
p.next = p.next.next
length -= 1
快慢指標法找到鍊錶的中間節點:
def findmid(head):
f = head
s = head
index = 0
while f.next != none and f.next.next != none:
f = f.next.next
s = s.next
index += 1
return index
單向鍊錶 python
class node object def init self self.data data self.nex none 初始化鍊錶 def init self self.head none 從頭結點依次遍歷,直到最後乙個節點 node.nex none 結束。def len self pre se...
Python 實現單向鍊錶
鍊錶顧名思義就是 鏈 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的。跟陣列不同鍊錶不用預先定義大小,而且硬體支援的話可以無限擴充套件。陣列需要預先定義大小,無法適應資料動態地增減,資料小於定義的長度會浪費記憶體,...
Python 實現單向動態鍊錶
鍊錶顧名思義就是 鏈 鍊錶是一種動態資料結構,他的特點是用一組任意的儲存單元存放資料元素。鍊錶中每乙個元素成為 結點 每乙個結點都是由資料域和指標域組成的。跟陣列不同鍊錶不用預先定義大小,而且硬體支援的話可以無限擴充套件。陣列需要預先定義大小,無法適應資料動態地增減,資料小於定義的長度會浪費記憶體,...