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