在JavaScript中实现一个deque
(双端队列)数据结构,我们可以使用数组来模拟这种具有前后两端都可以进行插入和删除操作的数据结构。下面是如何用JavaScript实现基本的deque
功能:
定义Deque类
首先,我们定义一个Deque
类,它包含内部数组来存储元素,并提供操作这些元素的方法。
javascriptclass Deque { constructor() { this.items = []; } // 在前端添加元素 addFront(element) { this.items.unshift(element); } // 在尾端添加元素 addBack(element) { this.items.push(element); } // 从前端移除元素 removeFront() { if (this.isEmpty()) { return undefined; } return this.items.shift(); } // 从尾端移除元素 removeBack() { if (this.isEmpty()) { return undefined; } return this.items.pop(); } // 检查deque是否为空 isEmpty() { return this.items.length === 0; } // 获取deque的大小 size() { return this.items.length; } // 清空deque clear() { this.items = []; } // 查看前端元素 front() { if (this.isEmpty()) { return undefined; } return this.items[0]; } // 查看尾端元素 back() { if (this.isEmpty()) { return undefined; } return this.items[this.items.length - 1]; } }
使用示例
下面是如何使用Deque
类的一些例子:
javascriptlet deque = new Deque(); // 添加元素 deque.addBack(1); deque.addBack(2); deque.addFront(0); console.log(deque.items); // [0, 1, 2] // 移除元素 console.log(deque.removeFront()); // 0 console.log(deque.removeBack()); // 2 console.log(deque.items); // [1] // 检查功能 console.log(deque.isEmpty()); // false console.log(deque.size()); // 1 console.log(deque.front()); // 1 console.log(deque.back()); // 1 // 清空deque deque.clear(); console.log(deque.isEmpty()); // true
在这个实现中,我们使用JavaScript的数组方法push
、pop
、shift
和unshift
来简化我们的addBack
、removeBack
、removeFront
和addFront
实现,这些方法分别对应于数组的尾部添加、尾部移除、头部移除和头部添加操作。
2024年6月29日 12:07 回复