python实现操作链表的方法

  介绍

今天就跟大家聊聊有关python实现操作链表的方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

类节点:
  def __init__(自我,dataval=None):
  self.dataval=dataval
  self.nextval=没有
  
  
  类SLinkList:
  def __init__(自我):
  self.headval=没有
  
  #遍历列表
  def traversal_slist(自我):
  head_node=self.headval
  虽然head_node不是没有:
  打印(head_node.dataval)
  
  head_node=head_node.nextval
  
  
  #表头插入结点
  def head_insert(自我,newdata):
  Newdata=节点(Newdata)
  Newdata.nextval=self.headval
  self.headval=Newdata
  
  #表尾插入结点
  def tail_insert(自我,newdata):
  Newdata=节点(Newdata)
  
  如果自我。headval没有:
  self.headval=Newdata
  返回
  head_node=self.headval
  而head_node。nextval:
  head_node=head_node.nextval
  head_node.nextval=Newdata
  
  #在两个数据结点之间插入
  def middle_insert(自我、middle_node newdata):
  Newdata=节点(Newdata)
  如果middle_node没有:
  返回
  Newdata.nextval=middle_node.nextval
  middle_node.nextval=Newdata
  
  #删除结点
  def remove_node(自我,newdata):
  head_node=self.headval
  如果head_node==没有:
  返回
  如果head_node。dataval==newdata:
  自我。headval=head_node.nextval
  head_node=没有
  返回
  虽然head_node不是没有:
  prev=head_node
  head_node=head_node.nextval
  如果head_node:
  如果head_node.dataval==newdata:
  prev.nextval=head_node.nextval
  
  
  lis=SLinkList ()
  lis.headval=节点(& # 39;aa # 39;)
  ee=节点(& # 39;bb # 39;)
  lis.headval.nextval=ee
  
  lis.head_insert (& # 39; cc # 39;)
  lis.tail_insert (& # 39; dd # 39;)
  lis.middle_insert (ee,“Fri")
  lis.remove_node (& # 39; bb # 39;)
  
  lis.traversal_slist () 

看完上述内容,你们对python实现操作链表的方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

python实现操作链表的方法