队列的定义
队列是只允许在一端插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。
队列的基本操作
循环队列的定义
循环队列就是头尾相接的顺序存储结构。

特点
数组未满时可以插入新的队尾元素。

初始化:rear=front=0
队列为空:rear == front(链队为空:rear==fornt==NULL)
队列已满:(rear + 1)% MAX_SIZE == front
队列长度:(rear-front+maxsize)%maxsize
队头指针:front=(front+1)%maxsize
队尾指针:rear=(rear+1)%maxsize
处理队满或者队空
class Queue {constructor() {this.items = [];}// 添加新元素enqueue(element) {this.items.push(element);}// 移除元素dequeue() {return this.items.shift();}// 查看队列头元素front() {return this.items[0];}// 检查队列是否为空isEmpty() {return this.items.length == 0;}// 队列元素个数size() {return this.items.length;}// 打印队列元素print() {console.log(this.items.toString());}}
应用
广义表就是通常所说的列表,它放松了对表元素的原子性限制,允许他们有自身结构。
那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为:1 ,4。去掉最外面的一层括号,剩下的还是一个整体,故长度是1,深度是脱几层括号能把最里面的数露出来,显然是右边的那个ab,共脱了4层括号。
画出广义表 LS=(( ) , (e) , (a , (b , c , d )))的头尾链表存储结构

