zoukankan      html  css  js  c++  java
  • Python—使用列表构造队列数据结构

    队列的概念

      只允许在一端插入数据操作,在另一端进行删除数据操作的特殊线性表;进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列);队列具有先进先出(FIFO)的特性。

    # _*_ coding=utf-8 _*_
    
    
    class Queue(object):
    
        def __init__(self, size=100):
            self.queue = [0 for _ in range(size)]
            self.size = size
            self.rear = 0
            self.front = 0
    
        def push(self, element):
            if not self.is_filled():
                self.rear = (self.rear + 1) % self.size
                self.queue[self.rear] = element
            else:
                raise IndexError("Queue is filled")
    
        def pop(self):
            if not self.is_empty():
                self.front = (self.front + 1) % self.size
                return self.queue[self.front]
            else:
                raise IndexError("Queue is empty")
    
        def is_empty(self):
            return self.rear == self.front
    
        def is_filled(self):
            return (self.rear + 1) % self.size == self.front
    
    
    q = Queue(5)
    for i in range(4):
        q.push(i)
    print(q.queue)
    print(q.pop())
  • 相关阅读:
    链式栈的C++实现
    Java面试之设计模式二
    前端资源
    Java面试之异常
    Java面试之序列化
    Java面试之重写(Override)与重载(Overload)
    项目视图展示
    Java面试之集合
    Java面试之SSH框架面试题集锦
    JDBC技术
  • 原文地址:https://www.cnblogs.com/zivli/p/11299719.html
Copyright © 2011-2022 走看看