队列
定义:是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有“先进先出”的特性。
注意:简单队列可能会出现假溢出或假满的问题。
循环队列
在非空循环队列中,队头指针始终指向当前的队头指针,而队尾指针始终指向真正队尾元素后面的单元。
队列“满”的条件:
(rear+1)%MAXSIZE==front
双端队列
定义:允许两端都可以进行入队和出队操作的队列(不受限)。
输出受限的双端队列:允许一端进行插入和删除,但在另一端只允许插入的双端队列称为输出受限的双端队列。
输入受限的双端队列:允许一端进行插入和删除,但在另一端只允许删除的双端队列称为输出受限的双端队列。
例:若以1234作为双端队列的输入队列,既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出队列的是()。
A.4213 B.4231 C.4132 D.1234
答案:B
链队
一个同时带有队头指针和队尾指针的单链表。
循环队列和链式队列的比较
1)时间性能比较
循环队列和链式队列基本操作的算法时间都是O(1)。
循环队列是事先申请好空间,使用期间不释放;
链式队列是每次申请和释放结点都会存在一些时间开销。
2)空间性能比较
循环队列必须要有一个固定的长度,所以就有了存储元素个数和空间浪费的问题。
队列的应用
主要在层次遍历中,另外队列应用于计算机系统中可解决主机与外部设备之间速度不匹配的问题和多用户引起的资源竞争问题。
利用队列打印杨辉三角形,那就先看看大佬咋写的吧,后续我也会自己来啃一啃...