抽象数据类型-队列

队列模型:
1.在表的末端插入元素(入队),在表的开头删除元素(出队),表的末端又叫队尾,表的开头又叫队头

队列实现:
1.数组实现:使用循环数组的方式来实现队列的插入和删除,具体实现如下--
1.1定义一个数组theArray、定义头部位置front和尾部位置back
1.2入队在队尾插入元素,即新元素放到back+1位置上,出队弹出队头元素,即弹出front位置上的元素,front位置向后移一位,即变为front+1
1.3当front或back到达数组的尾端,它就绕回到开头
1.4当back=front-1时,说明此时队列为空;当队列中存在theArray.length-1个元素说明队列已满
2.链表实现:使用双向链表的方式来实现队列的插入和删除,具体实现如下--
2.1定义一个双向链表节点Node,包含指向前一个节点的变量prev和指向后一个节点的变量next
2.2入队在双向链表的末尾插入元素,出队弹出双向链表头部元素
2.3当Node为null时说明队列为空,当双向链表的大小达到最大值(默认为2^31),说明队列已满

队列应用(简单):
1.排队论,适用于先进后出的使用场景,而且插入队列的元素不会轻易更改,不会撤销

参考:数据结构与算法分析

你可能感兴趣的:(数据结构与算法)