数据结构与算法:队列(Queue)的实现

在数据结构当中,有一种结构叫作队列。队列和栈都是一个相似于列表的东西,惟一不一样的地方则是“先进先出”。队列就像咱们在食堂排队吃饭同样,先排队的同窗最早打到饭,下面是我画的队列的图片:
python

 从这种图当中咱们能够看到队列就如同一个吸管同样,最早从吸管左边进入的数字1,同时也最早吸管的最右边出来。是否十分容易理解呢?如今咱们使用Python来实现这个数据结构:算法

class Queue():

    def __init__(self):
        # 初始化一个空的列表
        self.__list=[]

        # 往队列里插入元素
    def enqueue(self,item):
        self.__list.append(item)

    def dequeue(self):
        return self.__list.pop(0)# 弹出队列里最早进入的元素

    # 判断队列是否为空
    def is_empty(self):
        return self.__list == []

    # 计算队列的大小
    def size(self):
        return len(self.__list)


queue = Queue()

# 建立队对象完成,向队列里面灌入元素

queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
queue.enqueue(4)

print("If this queue is empty? :",queue.is_empty())

# 将队列里的元素一个一个依次取出

print(queue.dequeue())
print(queue.dequeue())
print(queue.dequeue())
print(queue.dequeue())

最后获得的输出是:数据结构

If this queue is empty? : False
1
2
3
4

 能够看到,咱们插入队列元素的顺序是1,2,3,4.最后出队列的时候,元素的输出顺序也是1,2,3,4.这就队列的特色了。队列将会在后面的深度优先搜索算法当中起到很大的做用。app

相关文章
相关标签/搜索