网络编程
位置:首页>> 网络编程>> Python编程>> python操作链表的示例代码

python操作链表的示例代码

作者:HHMLXL  发布时间:2023-08-08 23:55:41 

标签: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()

来源:https://www.cnblogs.com/HHMLXL/p/13589359.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com