python創建單鏈表


學習python過程之了解單鏈表:

單鏈表是鏈表中最簡單的一種形式,其每個節點包含2個域,一個信息域(當前節點的元素),一個連接域(指向鏈表的下一個節點),最后一個節點的鏈接域指向一個空值None

 

以下是學習視頻后進行練習記錄:

參考視頻地址:https://www.bilibili.com/video/BV18W411T7Vv?p=15

 

#coding:UTF-8

#定義一個節點,節點存在當前節點的值和指向下一個節點的內存空間
class Node(object):
def __init__(self,item):
self.item=item
self.next=None

#定義一個鏈表
class LinkListNode(object):
#定義一個私有變量指向頭節點
def __init__(self,Node=None):
self.__head=Node

#鏈表的操作
def is_empty(self):
#鏈表是否為空
return self.__head==None
def length(self):
#鏈表長度
count=0
cur=self.__head
while cur!=None:
count+=1
cur=cur.next
return count

def travel(self):
#遍歷整個鏈表
cur=self.__head
while cur!=None:
print(cur.item,end=' ')
cur=cur.next
print('\t')

def add(self,item):
#鏈表頭部添加元素
node=Node(item)
node.next=self.__head
self.__head=node
def append(self,item):
#鏈表尾部添加元素
node=Node(item)
cur=self.__head
if cur==None:
node.next=cur
self.__head=node
else:
while cur.next!=None:
cur=cur.next
node.next=cur.next
cur.next=node

def insert(self,pop,item):
#指定位置添加元素
node=Node(item)
if pop<=0:
self.add(item)
elif pop>(self.length()-1):
self.append(item)
else:
cur=self.__head
count=0
while count<pop-1:
count+=1
cur=cur.next
node.next=cur.next
cur.next=node

def remove(self,item):
#刪除節點
pre=None
cur=self.__head
while cur!=None:
#判斷鏈表不為空
if cur.item==item:
if cur==self.__head:
self.__head=cur.next
cur=cur.next
else:
pre.next=cur.next
cur=cur.next

break    #如需循環查找刪除相同參數,可將break改為continue
else:
pre = cur
cur = cur.next

def search(self,item):
#查找節點是否存在
cur=self.__head
while cur!=None:
if cur.item==item:
return True
else:
cur=cur.next
return False


if __name__=="__main__":
ll=LinkListNode()
print(ll.is_empty())
print(ll.length())
ll.append(1)
print(ll.is_empty())
print(ll.length())
ll.append(2)
ll.append(3)
ll.add(9)
ll.append(8)
ll.travel()
ll.add(1)
ll.travel()
ll.insert(1,6)
ll.append(1)
ll.travel()
ll.remove(1)
ll.travel()
print(ll.search(10))

輸出:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM