Ai
1 Star 1 Fork 0

wenxuefeng/data structure

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
queue.js 1.99 KB
一键复制 编辑 原始数据 按行查看 历史
class Queue {
constructor() {
this.dataSource = [];
this.size = 0;
}
// enqueue:向队列尾增加元素
enqueue(element) {
this.dataSource.push(element);
this.size++;
}
// dequeue: 删除队头元素
dequeue() {
if (this.empty()) {
this.size--;
return this.dataSource.shift();
}
}
// empty: 判断是否为空队列
empty() {
if (this.size > 0) {
return true;
}
return false;
}
// front: 返回队头元素
front() {
if (this.empty()) {
return this.dataSource[0];
}
}
// back: 返回队尾元素
back() {
if (this.empty()) {
return this.dataSource[this.size - 1];
}
}
// length: 返回队列元素总数
length() {
return this.size;
}
// clear: 清空队列
clear() {
this.dataSource.length = 0;
this.size = 0;
}
// toString: 返回队列所有元素
toString() {
return this.dataSource;
}
}
// 扩展队列,使得队列可以从两端删除添加元素
class Deque extends Queue {
// unshift:向队头添加元素
unshift(element) {
this.size++;
this.dataSource.unshift(element);
}
// pop: 删除队尾元素
pop() {
if (this.empty()){
this.size--;
return this.dataSource.pop();
}
}
}
// 使用扩展队列Deque判断单词是否为回文
function isPalindrome(str){
const deque = new Deque();
let flag = true;
for(let i=0;i<str.length;i++) {
deque.enqueue(str[i]);
}
while (deque.size>=2) {
if (deque.pop() !== deque.dequeue()) {
flag = false;
break;
} else{
flag = true;
}
}
if (!flag) {
console.log(str+':不是回文');
} else console.log(str+':是回文');
}
isPalindrome('aabbcc');
isPalindrome('aabbaa');
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wen_xue_feng/data-structure.git
git@gitee.com:wen_xue_feng/data-structure.git
wen_xue_feng
data-structure
data structure
master

搜索帮助