0
点赞
收藏
分享

微信扫一扫

JavaScript栈


①基于数组的栈

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
// 构造栈类 基于数组
class Stack{
// 构造函数
constructor(){
this.items = [];
}
// 插入数据、压栈
push(element){
this.items.push(element);
// this.items[this.items.length]=elememt;
}
// 删除栈顶数据、弹栈
pop(){
if(this.isEmpty()){
console.log('栈为空');
return undefined;
}
this.items.pop();
}
// 检查是否为空
isEmpty(){
return this.items.length == 0;
}
// 查看栈顶元素
peak(){
if(this.isEmpty())
{
console.log('栈为空');
return undefined;
}
return this.items[this.items.length - 1];
}

}
// 构建对象
const stack = new Stack();
stack.push(12);
console.log(stack.peak());
</script>
</body>
</html>

基于JavaScript对象的栈

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
// 构造栈类 基于数组
class Stack{
// 构造函数
constructor(){
this.count = 0;
this.items = {};
}
// 插入数据、压栈
push(element){
this.items[this.count] = element;
this.count += 1;
}
// 删除栈顶数据、弹栈
pop(){
if(this.isEmpty())
{
console.log('栈为空');
return undefined;
}
this.count --;
delete this.items[this.count];
}
// 检查是否为空
isEmpty(){
return this.items.count == 0;
}
// 查看栈顶元素
peak(){
if(this.isEmpty()){
console.log('栈为空');
return undefined;
}
return this.items[this.count-1];
}

}
// 构建对象
const stack = new Stack();
stack.push(12);
console.log(stack.peak());
</script>
</body>
</html>


举报

相关推荐

0 条评论