python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
本文实例讲述了python单向链表的基本实现与使用方法。分享给大家供大家参考,具体如下:
#-*-coding:utf-8-*-
#!python3
classNode():
def__init__(self,item):
#初始化这个节点,值和下一个指向
self.item=item
self.next=None
classSingleLinklist():
def__init__(self):
#初始化这个单链表的头指针为空
self._head=None
deflength(self):
#获取这个链表的长度
count=0
cur=self._head
whilecur!=None:
count+=1
cur=cur.next
returncount
defis_empty(self):
"""判断是否为空"""
returnself._head==None
defadd(self,item):
"""在头部添加元素"""
node=Node(item)
node.next=self._head
self._head=node
defappend(self,item):
"""在尾部添加元素"""
cur=self._head
node=Node(item)
whilecur!=None:
cur=cur.next
cur.next=node
definsert(self,pos,item):
"""在选定的位置添加元素"""
cur=self._head
node=Node(item)
count=0
ifpos<=0:
self.add(item)
elifpos>(self.length()-1):
self.append(item)
else:
whilecount<(pos-1):
count+=1
cur=cur.next
node.next=cur.next
cur.next=node
deftravel(self):
"""遍历整个链表"""
cur=self._head
whilecur!=None:
print(cur.item,end="")
cur=cur.next
print("")
defremove(self,item):
"""删除链表"""
cur=self._head
pre=None
whilecur!=None:
ifcur.item==item:
ifnotpre:
self._head=cur.next
break
else:
pre.next=cur.next
else:
pre=cur#
cur=cur.next
defsearch(self,item):
"""查找某个节点"""
cur=self._head
whilecur!=None:
ifcur.item==item:
print("找到这个元素了")
returnTrue
cur=cur.next
print("抱歉没有这个元素")
returnFalse
singlistdemo=SingleLinklist()
singlistdemo.add(1)
singlistdemo.add(2)
singlistdemo.add(65)
singlistdemo.insert(2,77)
singlistdemo.insert(1,66)
singlistdemo.insert(0,66)
print(singlistdemo.length())
singlistdemo.travel()
singlistdemo.remove(1)
singlistdemo.travel()
singlistdemo.search(65)
运行结果:
6
6665662771
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
