python实现单链表,反转一个单链表 python_1

  python实现单链表,反转一个单链表 python

  本文主要介绍在Python中实现双向链表的基本操作。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  双向链表基本操作的实现,供大家参考。具体情况如下

  在之前的博客中介绍了三种链表,分别是单链表、单向循环链表和双向链表。本博客将使用Python实现双向链表的以下操作。(使用的工具是Python 3)

  Is_empty() :确定链表是否为空。

  Length() :返回链表的长度。

  Travel() :遍历

  Add(item) :在表头添加一个节点。

  Append(item) :在末尾添加一个节点

  在指定位置添加一个节点

  删除一个节点

  Search(item) :找出该节点是否存在。

  Python实现

  类节点(对象):

  双向链表节点

  def __init__(self,item):

  self.item=项目

  self.next=无

  self.prev=无

  class DoubleLink(object):

  双向链表

  def __init__(self):

  自我。_head=无

  定义为_空(自身):

  确定它是否为空

  回归自我。_head==无

  定义长度(自身):

  返回链表的长度

  cur=self。_head

  计数=0

  一边诅咒!=无:

  计数=1

  下一个

  返回计数

  定义差旅(自助):

  遍历链表

  cur=self。_head

  一边诅咒!=无:

  打印(当前项目)

  下一个

  打印()

  定义添加(自身,项目):

  在标头处插入元素

  节点=节点(项目)

  if self.is_empty():

  #如果是空链表,指向point _ head

  自我。_head=node

  else:

  #将下一个节点指向_head的头节点

  node.next=self。_head

  #将_head的头节点的prev指向该节点

  自我。_head.prev=node

  #点到节点

  自我。_head=node

  定义附加(自身,项目):

  在结尾插入元素

  节点=节点(项目)

  if self.is_empty():

  自我。_head=node

  else:

  #移动到链接列表的末尾

  cur=self。_head

  下一个!=无:

  下一个

  #将尾节点cur的下一个指向该节点

  cur.next=node

  #当前节点的前一点

  node.prev=cur

  定义搜索(自身,项目):

  找出该元素是否存在

  cur=self。_head

  一边诅咒!=无:

  if cur.item==item:

  返回True

  下一个

  返回False

  指定位置插入节点

  在这个操作中,要注意链指向的顺序。

  定义插入(自身、位置、项目):

  在指定位置添加节点

  如果pos=0:

  self.add(项目)

  elif pos (self.length() - 1):

  自我附加(项目)

  else:

  node=Node()

  cur=self。_head()

  计数=0

  #移动到指定的上一个位置

  而cur pos - 1 :

  计数=1

  下一个

  #当前节点的前一点

  node.prev=cur

  #将下一个of节点指向下一个cur节点

  node.next=cur.next

  #将cur的下一个节点的prev指向该节点

  cur.next.prev=node

  #节点旁边的当前点

  cur.next=node

  删除元素

  定义移除(自身,项目):

  删除元素

  如果self.is_empty():返回

  else:

  cur=self。_head

  if cur.item==item:

  #如果第一个节点的元素是要删除的元素

  if cur.next==None:

  #如果链表中只有一个节点

  自我。_head=无

  else:

  cur.next.prev=无

  自我。_head=cur.next

  返回

  一边诅咒!=无:

  if cur.item==item:

  cur.prev.next=cur.next

  cur.next.prev=cur.prev

  破裂

  下一个

  这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: