(翻译)数据结构与算法系列 —— 队列的类型

295 阅读1分钟

队列的介绍

在这篇文章中,你将会通过图解学到不同的队列类型。

队列在编程中是一种非常有用的数据结构。它与在电影院走廊排队的队列非常像, 第一个进入队列的上将会第一个买到票。

共有四种不同类型的数据结构:

  • 简单队列
  • 循环队列
  • 优先队列
  • 双向队列

简单队列

一种非常简单的队列, 在队伍的后面插入元素,在前面删除元素。 严格遵守FIFO (先进先出) 原则。

image.png

循环队列

一种循环的队列, 最后一个元素指向第一个元素,形成一个循环链。

image.png

循环队列比简单队列更优的地方在于对内存的利用。 如果队列的最后一个位置有元素,而第一个位置是空的, 我们就可以在第一个位置上插入一个元素。 这在简单队列中是不可能实现的。

优先队列

优先队列是一种非常特别的队列, 其中每一个元素都与一个优先级相关联,并且根据优先级执行操作。 如果元素有相同的优先级, 那么根据它们在队列中的顺序为执行操作。

image.png

插入操作是基于队列元素的先后顺序,而删除(出队)是根据元素的优先级。

双端队列

双端队列的元素插入和删除操作既可以从队首进行也可以从队尾进行。 因此它并不遵守后进先出的原则。

image.png