Python实现队列

Task2 ---- 队列


  • 时间原因,循环队列还没写完

源码
# coding = utf-8

from Task1.OwnLinklist import LinkList


class QueueByArray:

    def __init__(self, size=None):
        if isinstance(size, int) and size:
            self.size = size if size else 10
            self.queue = [None] * self.size
        else:
            raise TypeError("Input size must be integer")

    def insert(self, value):
        if len(self.queue) >= 10:
            raise IOError("Queue is full")
        self.queue.append(value)

    def pop(self):
        try:
            self.queue.pop(0)
        except IndexError:
            raise IndexError("Queue is empty")


class QueueByLinklist:

    def __init__(self, size=None):
        if isinstance(size, int) and size:
            self.size = size if size else 10
            self.queue = LinkList([None for i in range(self.size)])
        else:
            raise TypeError("Input size must be integer")

    def insert(self, value):
        if self.queue.length() >= self.size:
            raise IOError("Queue is full")
        if not self.queue.header.next:
            self.queue.append(value)

    def pop(self):
        length = self.queue.length()
        if length > 1:
            self.queue.delete(0)
        else:
            raise IndexError("Queue is empty")


class LoopQueueByArray:

    def __init__(self):
        self.queue = list()


if __name__ == '__main__':
    # task 循环队列
    queue = LoopQueueByArray()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值