js进栈出栈_JavaScript栈

什么是栈?

栈是一种遵循后进先出(Last in , first out)原则的有序组合。它类似于数组,但是添加和删除元素时有更加灵活的控制。新添加的或者待删除的元素都保存在栈的末尾,即栈顶。另一端就是栈底。譬如,餐厅里的一摞盘子,最上面的盘子是最后放上去的,第一个放上去的盘子被压在最底端。即,新元素都靠近栈顶,旧元素都靠近栈底。在计算机内部,栈被用于在编译器或者内存中保存变量和方法调用。如下创建了一个类来表示栈。

In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added.

JavaScript如何定义栈?

function Stack() {//各种属性、方法

var items = [];//依然选择数组来保存元素

this.push = function(element){//添加元素到栈顶,这里使用了数组的push方法

items.push(element);

};

this.pop = function(){//移除栈顶元素,并且返回该元素

return items.pop();

};

this.peek = function(){//仅仅返回栈顶元素,类似于查询的功能,不对栈做任何修改

return items[items.length-1];

};

this.isEmpty = function(){//逻辑判断的功能,如果栈里为空,返回true

return items.length == 0;

};

this.size = function(){//返回栈里的元素的个数,即判断内部数组的长度是否为0

return items.length;

};

this.clear = function(){//清空栈的内容

items = [];

};

this.print = function(){

console.log(items.toString());

};

this.toString = function(){

return items.toString();

};

}

JavaScript如何使用栈?

那么,就用一下这个栈吧。以下是使用栈的代码。

var stack = new Stack();

console.log(stack.isEmpty()); //outputs true

stack.push(5);

stack.push(8);

console.log(stack.peek()); // outputs 8

stack.push(11);

console.log(stack.size()); // outputs 3

console.log(stack.isEmpty()); //outputs false

stack.push(15);

stack.pop();

stack.pop();

console.log(stack.size()); // outputs 2

stack.print(); // outputs [5, 8]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值