实现有序列表和无序列表

class Node:
    def __init__(self,init_data):
        self.data=init_data
        self.next=None
    def get_data(self):
        return self.data
    def get_next(self):
        return self.next
    def set_next(self,new_next):
        self.next=new_next
class List:
    def __init__(self):
        self.head=None
    def is_empty(self):
        return self.head==None
    def add(self,item):
        temp=Node(item)
        temp.set_next(self.head)
        self.head=temp
    def size(self):
        current=self.head
        count=0
        while current!=None:
            count+=1
            current=current.get_next()
        return count
    def search(self,item):
        current=self.head
        found=False
        while current!=None and not found:
            if current.get_data()==item:
                found=True
            else:
                current=current.get_next()
        return found
    def remove(self,item):
        current=self.head
        previous=None
        found=False
        while not found:
            if current.get_data()==item:
                found=True
            else:
                previous,current=current,current.get_next()
        if previous==None:
            self.head=current.get_next()
        else:
            previous.set_next(current.get_next())
class OrderList:
    def __init__(self):
        self.head=None
    def search(self,item):
        current=self.head
        found=False
        stop=False
        while current!=None and not found and not stop:
            if current.get_data()==item:
                found=True
            else:
                if current.get_data()>item:
                    stop=True
                else:
                    current=current.get_next()
        return found
    def add(self,item):
        current=self.head
        previous=None
        stop=False
        while current!=None and not stop:
            if current.get_data()>item:
                stop=True
            else:
                previous=current
                current=current.get_next()
        temp=Node(item)
        if previous==None:
            temp.set_next(self.head)
            self.head=temp
        else:
            temp.set_next(current)
            previous.set_next(temp)
            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值