怎么在python中实现一个单向循环链表

  介绍

这篇文章将为大家详细讲解有关怎么在python中实现一个单向循环链表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>单向循环链表

单链表的一个变形是单向循环链表,链表中最后一个节点的下一个域不再为没有,而是指向链表的头节点。

怎么在python中实现一个单向循环链表

<强>操作

<李>

is_empty()判断链表是否为空

<李>

长度()返回链表的长度

<李>

旅行()遍历

<李>

添加(项目)在头部添加一个节点

<李>

附加(项目)在尾部添加一个节点

<李>

插入(pos、项目)在指定位置pos添加节点

<李>

删除(项)删除一个节点

<李>

搜索(项)查找节点是否存在

<强>实现

#, - *安康;编码:utf-8  - * -   # ! python3   class 节点(对象):   “““才能节点“““   def 才能__init__(自我,,项):   ,,,self.item =条目   ,,,self.next =,没有   class  SinCycLinkedlist(对象):   “““才能单向循环链表“““   def 才能__init__(自我):   ,,,self.__head =,没有   def 才能is_empty(自我):   ,,,“““判断链表是否为空,““   ,,,return  self.__head ==,没有   def 才能;长度(自我):   ,,,“““返回链表的长度“““   ,,,#,如果链表为空,返回长度0   ,,,if  self.is_empty ():   ,,,,,return  0   ,,,count =1   ,,,cur =self.__head   ,,,while  cur.next  !=, self.__head:   ,,,,,count  +=1   ,,,,,cur =cur.next   ,,,return 计数   def 才能;旅行(自我):   ,,,“““遍历链表“““   ,,,if  self.is_empty ():   ,,,,,回来   ,,,cur =self.__head   ,,,印刷(cur.item,)   ,,,while  cur.next  !=, self.__head:   ,,,,,cur =cur.next   ,,,,,印刷(cur.item,)   ,,,印刷(“”)   def 才能添加(自我,,项):   ,,,“““头部添加节点“““   ,,,node =,节点(项)   ,,,if  self.is_empty ():   ,,,,,self.__head =,节点   ,,,,,node.next =self.__head   ,,,:   ,,,,,#,添加的节点指向_head   ,,,,,node.next =self.__head   ,,,,,#,移到链表尾部,将尾部节点的下一指向节点   ,,,,,cur =self.__head   ,,,,,while  cur.next  !=, self.__head:   ,,,,,,,cur =cur.next   ,,,,,cur.next =,节点   ,,,,,#,_head指向添加节点的   ,,,,,self.__head =,节点   def 才能添加(自我,,项):   ,,,“““尾部添加节点“““   ,,,node =,节点(项)   ,,,if  self.is_empty ():   ,,,,,self.__head =,节点   ,,,,,node.next =self.__head   ,,,:   ,,,,,#,移到链表尾部   ,,,,,cur =self.__head   ,,,,,while  cur.next  !=, self.__head:   ,,,,,,,cur =cur.next   ,,,,,#,将尾节点指向节点   ,,,,,cur.next =,节点   ,,,,,#,将节点指向头节点_head   ,,,,,node.next =self.__head   def 才能插入(自我,,pos,项):   ,,,“““在指定位置添加节点“““   ,,,if  pos  & lt;=, 0:   ,,,,,self.add(项)   ,,,elif  pos 祝辞,(self.length(),安康;1):   ,,,,,self.append(项)   ,,,:   ,,,,,node =,节点(项)   ,,,,,cur =self.__head   ,,,,,count =0   ,,,,,#,移动到指定位置的前一个位置   ,,,,,while  count  & lt;, (pos 安康;1):   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在python中实现一个单向循环链表