單鏈表 python

2021-09-22 05:56:56 字數 2046 閱讀 9600

class node(object):

def __init__(self,item):

self.item=item

self.next=none

class singlelist(object):

def __init__(self):

self._head=none

def is_empty(self):

return self._head is none

#鍊錶長度

def length(self):

cur=self._head

count=0

while cur!=none:

cur=cur.next

count+=1

return count

#遍歷輸出

def printlist(self):

cur=self._head

while cur!=none:

print(cur.item)

cur=cur.next

#頭部新增

def add(self,item):

node=node(item)

cur=self._head

node.next=cur

self._head=node

#尾部新增

node=node(item)

cur=self._head

if cur==none:

node.next=cur

self._head = node

else:

while cur.next!=none:

cur=cur.next

cur.next=node

#指定位置新增

def insert(self,pos,item):

node=node(item)

cur=self._head

if not isinstance(pos,int):

raise typeerror

if pos<0:

raise indexerror

if self.length()print('超出列表')

return

if self.length()==pos:

"表尾新增"

elif pos==0:

"表頭新增"

self.add(item)

else:

count=0

while countcount+=1

cur=cur.next

node.next=cur.next.next

cur.next.next = node

# 刪除節點

def remove(self, item):

node=node(item)

cur=self._head

if cur.item==item:

self._head=cur.next

else:

while cur.next.item != item:

cur=cur.next

if cur.next == none:

print('沒有該元素')

return

cur.next=cur.next.next

# 查詢節點是否存在

def search(self, item):

cur=self._head

while cur.item!=item:

cur=cur.next

if cur == none:

print("結點不存在")

return

print("結點存在")

if __name__=="__main__":

s=singlelist()

s.insert(0, 0)

s.insert(1, 1)

s.insert(2, 2)

s.insert(0, 20)

print(s.printlist())

python 單鏈表

class node def init self,cargo none,next none self.cargo cargo self.next next def str self return str self.cargo node1 node one node2 node two node1.n...

python 構造單鏈表

鍊錶 linked list 是由一組被稱為結點的資料元素組成的資料結構,每個結點都包含結點本身的資訊和指向下乙個結點的位址。由於每個結點都包含了可以鏈結起來的位址資訊,所以用乙個變數就能夠訪問整個結點序列。也就是說,結點包含兩部分資訊 一部分用於儲存資料元素的值,稱為資訊域 另一部分用於儲存下乙個...

python實現單鏈表

code python code coding utf 8 class node def init self,value self.data value self.next none class linklist def init self,data 0 self.head none self.in...