数据结构:单向循环链表(四)

单向循环链表的操作

add(item)在头部添加元素

思路:1、先将新节点添加到头部,让node.next=self.__head 以及让self.__head=node 

   2、进行遍历,循环条件: 最后一个节点现在指向第二个节点,即cur.next = node.next;找到最后一个节点之后,将cur.next=node

   3、当链表为空时,不进入循环,同样实现了添加操作

class Node(object):
    def __init__(self,item):
        self.item=item
        self.head=None

class SinCycLinkedlist(object):
    def __init__(self,node=None):
        self.__head=node
        while node:
            node.next=self.__head

    def add(self,item):
        node=Node(item)
        node.next=self.__head
        self.__head=node
        cur=self.__head
        while cur.next !=node.next:
            cur=cur.next
        cur.next=node

  

posted @ 2020-05-14 10:27  Roronoa-Zoro  阅读(128)  评论(0编辑  收藏  举报