You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
>队列跟栈一样,也是一种**操作受限的线性表数据结构**
|
|
|
|
|
|
|
|
用数组实现的队列叫作**顺序队列**,用链表实现的队列叫作**链式队列**。
|
|
|
|
|
|
|
|
## 用两个栈实现一个队列
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
class StackQueue {
|
|
|
|
private stack1: number[] = [];
|
|
|
|
private stack2: number[] = [];
|
|
|
|
|
|
|
|
add(value: number) {
|
|
|
|
this.stack1.push(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
popup() {
|
|
|
|
if (!this.stack1.length) return;
|
|
|
|
while (this.stack1.length) {
|
|
|
|
const stackValue = this.stack1.pop();
|
|
|
|
this.stack2.push(stackValue!);
|
|
|
|
}
|
|
|
|
|
|
|
|
const popValue = this.stack2.pop();
|
|
|
|
|
|
|
|
while (this.stack2.length) {
|
|
|
|
const stackValue = this.stack2.pop();
|
|
|
|
this.stack1.push(stackValue!);
|
|
|
|
}
|
|
|
|
|
|
|
|
return popValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
get length() {
|
|
|
|
return this.stack1.length;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|