javascript数组模拟栈-数据结构
//javascript数组模拟栈结构
class Stack {
constructor() {
this.items = [];
//这个数组是个公开的,不能被保护Stack的属性
//类私有属性可以 用 # 来声明
}
push(element) {
//栈顶添加元素
this.items.push(element);
}
pop() {
//删除栈的元素
this.items.pop();
}
peek() {
//获取栈顶的元素
return this.items[this.items.length - 1];
}
isEmpty() {
//判断栈是否是空栈
return this.items.length > 0 && false;
}
clear() {
//清空栈里面所有的元素
this.items = [];
}
size() {
return this.items.length;
}
}
let arr = new Stack();
arr.push(1);
arr.push(2);
arr.push(3);
//arr 是栈的一个实例 Stack [1,2,3]
arr.pop();
//输出arr [1,2]
console.log(arr.size());
//输出 2
console.log(arr.isEmpty());
//输出 false
console.log(arr);
//输出 Stack [1,2]
console.log(arr.peek());
//输出栈顶元素 2
arr.clear();
//输出 []
console.log(arr);