python3链表_python3实现单向链表
創(chuàng)建單向鏈表有很多種方式,個(gè)人覺得從數(shù)組創(chuàng)建比較方便,不多說,直接上代碼
class linkNode():
"""
鏈表節(jié)點(diǎn)類
"""
def __init__(self,dat):
self.dat = dat
self.next = None
class sigLink():
"""
this class is used to record a link
self.length:用于記錄該鏈表的長度
self.head:該鏈表的頭部
self.tail:用于記錄該鏈表的尾部。記錄尾部比較麻煩,維護(hù)部分基本也沒做
"""
def __init__(self,item):
"""
item:一維數(shù)組,存放該單鏈表的數(shù)組
"""
self.length = len(item)
if self.length<=0:
return
i = 0
self.head = linkNode(item[i])
self.tail = self.head
i += 1
while i
self.tail.next = linkNode(item[i])
self.tail = self.tail.next
i += 1
def printlink(self):
"""
正序打印該鏈表
"""
if self.head==None:
print("這是一條空鏈表")
p = self.head
while p!=None:
print(p.dat,end=' ')
p = p.next
def postPrintlink(self,root):
"""
倒序打印該鏈表
"""
if root!=None:
if root.next != None:
self.postPrintlink(root.next)
print(root.dat,end = ' ')
def linkAppend(self,num):
"""
在鏈表尾部追加節(jié)點(diǎn)
"""
self.tail.next = linkNode(num)
self.tail = self.tail.next
self.length += 1
def getlength(self):
"""
獲取鏈表的長度
"""
return self.length
def insertNode(self, index, num):
"""
在鏈表中間插入節(jié)點(diǎn)
index:插入點(diǎn)的序號(hào)
num:插入點(diǎn)的值
"""
if index>self.length:
print("index參數(shù)超出范圍")
return
if index==self.length:
self.linkAppend(num)
return
if index == 0:
p = linkNode(num)
p.next = self.head
self.head = p
self.length += 1
return
ptemp = self.head
while index>1:
ptemp = ptemp.next
index -= 1
p = linkNode(num)
p.next = ptemp.next
ptemp.next = p
self.length += 1
a = sigLink([1,2,3,4,5,6,7])
a.insertNode(2, 10)
a.printlink()
總結(jié)
以上是生活随笔為你收集整理的python3链表_python3实现单向链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python机器学习库_Python机器
- 下一篇: websocket python爬虫_p