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

单向循环链表的操作

search(item) 查找元素在不在链表当中

思路:1、当链表为空,直接返回False

   2、循环遍历查找,循环条件:cur.next != self.__head 在循环里面进行判断 cur.item == item 

   3、当cur.next = self.__head的时候,cur指向最后一个节点(即尾节点),不满足循环条件,所以需要单独判断一下,之后的情况就返回False 

class Node(object):
    """节点"""
    def __init__(self, item):
        self.item = item
        self.next = None


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

    def search(self,item):
        if self.__head==None:
            return False
        cur=self.__head
        while cur.next != self.__head:
            if cur.item==item:
                return True
            cur=cur.next
        if cur.item==item:
            return True
        return False

 

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