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...