Python单向链表实现与操作详解
本文提供Python单向链表的完整代码示例,涵盖节点类Node与链表类SLinkList的定义。详细解析了头插、尾插、中间插入及节点删除等核心操作方法,并包含遍历输出功能。通过具体实例演示链表的构建与基本操作,帮助开发者掌握Python中链表数据结构的实现细节。
Python单向链表核心代码实现
class Node:
def __init__(self,dataval=None):
self.dataval=dataval
self.nextval=None
class SLinkList:
def __init__(self):
self.headval=None
# 遍历列表
def traversal_slist(self):
head_node=self.headval
while head_node is not None:
print(head_node.dataval)
head_node=head_node.nextval
# 表头插入结点
def head_insert(self,newdata):
Newdata=Node(newdata)
Newdata.nextval=self.headval
self.headval=Newdata
# 表尾插入结点
def tail_insert(self,newdata):
Newdata=Node(newdata)
if self.headval is None:
self.headval=Newdata
return
head_node = self.headval
while head_node.nextval :
head_node=head_node.nextval
head_node.nextval=Newdata
# 在两个数据结点之间插入
def middle_insert(self,middle_node,newdata):
Newdata=Node(newdata)
if middle_node is None:
return
Newdata.nextval=middle_node.nextval
middle_node.nextval=Newdata
# 删除结点
def remove_node(self,newdata):
head_node=self.headval
if head_node==None:
return
if head_node.dataval == newdata:
self.headval = head_node.nextval
head_node = None
return
while head_node is not None:
prev=head_node
head_node=head_node.nextval
if head_node:
if head_node.dataval==newdata:
prev.nextval=head_node.nextval
lis=SLinkList()
lis.headval=Node('aa')
ee=Node('bb')
lis.headval.nextval=ee
lis.head_insert('cc')
lis.tail_insert('dd')
lis.middle_insert(ee,"Fri")
lis.remove_node('bb')
lis.traversal_slist()
上述内容展示了Python中操作单向链表的完整示例代码。如需获取更多关于Python链表的高级应用或相关技术资讯,建议持续关注本站发布的其他专业文章。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









