用python實現鍊錶操作

2021-07-04 05:28:10 字數 2324 閱讀 5406

下面的方式涉及到:初始化鍊錶、鍊錶長度、插入、刪除、新增、查詢、逆序

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是把堆疊的頂部的值移除並返回這個值。堆疊只提供對它的棧頂值的訪問。堆疊很容易實現,可以用靜態陣列 動態陣列 鍊錶實現堆疊。本文介紹的是鍊錶...