Python单向链表基础实现:定义、遍历、增删查完整指南
本文详细介绍Python中单向链表的完整实现方法,涵盖节点定义、链表初始化、长度计算及空判断。重点演示头插、尾插、指定位置插入、元素删除与查找等核心操作,并提供包含遍历功能的完整代码示例,帮助开发者掌握链表数据结构的基础应用。
Python单向链表基础实现与操作指南
本文通过具体实例解析Python单向链表的基础实现及其常用操作方法,旨在为读者提供清晰的参考代码与逻辑说明。
单向链表核心代码实现
# -*- coding:utf-8 -*-
#! python3
class Node():
def __init__(self,item):
#初始化这个节点,值和下一个指向
self.item = item
self.next = None
class SingleLinklist():
def __init__(self):
#初始化这个单链表的头指针为空
self._head = None
def length(self):
#获取这个链表的长度
count = 0
cur = self._head
while cur != None:
count+=1
cur = cur.next
return count
def is_empty(self):
"""判断是否为空"""
return self._head == None
def add(self,item):
"""在头部添加元素"""
node = Node(item)
node.next = self._head
self._head = node
def append(self,item):
"""在尾部添加元素"""
cur = self._head
node = Node(item)
while cur != None:
cur = cur.next
cur.next = node
def insert(self,pos,item):
"""在选定的位置添加元素"""
cur = self._head
node = Node(item)
count = 0
if pos <= 0:
self.add(item)
elif pos > (self.length()-1):
self.append(item)
else:
while count < (pos -1):
count+=1
cur = cur.next
node.next = cur.next
cur.next = node
def travel(self):
"""遍历整个链表"""
cur = self._head
while cur != None:
print(cur.item,end=" ")
cur = cur.next
print(" ")
def remove(self,item):
"""删除链表"""
cur = self._head
pre =None
while cur != None:
if cur.item == item:
if not pre:
self._head = cur.next
break
else:
pre.next = cur.next
else:
pre = cur #
cur = cur.next
def search(self,item):
"""查找某个节点"""
cur = self._head
while cur != None:
if cur.item == item:
print("找到这个元素了")
return True
cur = cur.next
print("抱歉没有这个元素")
return False
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 66 65 66 2 77 1
相关学习资源推荐
如需进一步了解Python相关技术,建议查阅本站发布的《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》等专题内容。
总结
希望上述关于Python程序设计的阐述能为您的学习与实践提供有益帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













