队列的定义
队列是只允许在一端插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。
队列的基本操作
循环队列的定义
循环队列就是头尾相接的顺序存储结构。
特点
数组未满时可以插入新的队尾元素。
初始化: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层括号。