下面的方式涉及到:初始化鍊錶、鍊錶長度、插入、刪除、新增、查詢、逆序
class node(object):
def __init__(self,data,p=0):
self.data = data
self.next = p
class linklist(object):
def __init__(self):
self.head = 0
def initlist(self):
print("input numbers here.'!' to quit")
data=input()
if data is not '-1':
self.head=node(int(data))
p=self.head
while data != '-1':
data=input()
if data == '-1':
break
else:
p.next=node(int(data))
p=p.next
print("輸入結束!")
#print("輸入結束,當前序列為:")
#p=self.head
#while p!=0:
# print(p.data)
# p=p.next
def getlength(self):
p = self.head
length = 0
while p!=0:
length+=1
p = p.next
#return length
print("當前鍊錶的長度為%d="%length)
def is_empty(self):
if self.getlength() ==0:
return true
else:
return false
def clear(self):
self.head = 0
q = node(item)
if self.head ==0:
self.head = q
else:
p = self.head
while p.next!=0:
p = p.next
p.next = q
print("在鍊錶尾部插入資料後,鍊錶為:")
p=self.head
while p!=0:
print(p.data)
p=p.next
def getitem(self,index):
if self.is_empty():
print ('linklist is empty.')
return
j = 0
p = self.head
while p.next!=0 and j self.getlength():
print ('linklist is empty.')
return
p=self.head
if index ==0:
q = node(item)
q.next=self.head
self.head=q
else:
p = self.head
post = self.head
j = 0
while p.next!=0 and jself.getlength():
print ('linklist is empty.')
return
p=self.head
if index ==0:
q = self.head
self.head = q.next
p=self.head
else:
p = self.head
post = self.head
j = 0
while p.next!=0 and j這個0代表整數0
while pre.next!=0:
print(pre.data)
pre=pre.next
if __name__=="__main__":
l = linklist()
l.initlist()
#l.rever()
#l.getlength()
#l.getitem(0)
#l.delete(0)
#l.insert(0,1)
#l.index(2)
#l.getitem(0)
用Python實現鍊錶Linklist
在leetcode上面試著用python解題,但是遇到鍊錶 二叉樹什麼的,python就用不溜。在網上看了一些資料。完整的實現過程如下 class node next none data none def init self,nodedata self.data nodedata 乙個鍊錶資料結構,...
用 Python 對鍊錶進行操作
學資料結構時,一直用 c 語言,c 語言中有指標,實現鍊錶很方便,對鍊錶進行操作只需要修改指標的指向即可。但是最近用 python 刷 leetcode 題,發現python 沒有指標這個概念,剛開始確實不太適應,吃了不少苦頭。好在查閱了大量的資料,理解了如何用 python 對鍊錶進行操作。因為 ...
用鍊錶實現堆疊
堆疊資料一種後進先出的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。基本的堆疊操作是push和pop,push是把乙個新值壓入堆疊的頂部,pop是把堆疊的頂部的值移除並返回這個值。堆疊只提供對它的棧頂值的訪問。堆疊很容易實現,可以用靜態陣列 動態陣列 鍊錶實現堆疊。本文介紹的是鍊錶...