创建一个基于JS对象的栈
创建一个栈最简单的方法就是使用数组,但是由于数组是一个有序的集合,为了保证元素排列有序,会占用更多的空间。于是可以使用js对象来存储栈元素。
export default class Stack {//声明一个Stack类
constructor() {
this.count = 0;
this.items = {};
}
//数组中push可以一次添加多个元素,此时一次只能添加一个
push(element) {
this.items[this.count] = element;
this.count++;
}
pop() {
if (this.isEmpty()) {
return undefined;
}
this.count--;
const result = this.items[this.count];
delete this.items[this.count];
return result;
}
peek() {
if (this.isEmpty()) {
return undefined;
}
return this.items[this.count - 1];
}
isEmpty() {
return this.count === 0;
}
size() {
return this.count;
}
clear() {
while (!this.isEmpty()) {
this.pop();
}
this.items = {};
this.count = 0;
}
toString() {
if (this.isEmpty()) {
return '';
}
let objString = `${this.items[0]}`;
for (let i = 1; i < this.count; i++) {
objString = `${objString},${this.items[i]}`;
}
return objString;
}
}
作为js学习笔记
如有不足还希望大佬指出