js学习栈以及使用栈实现约瑟夫环问题

js学习栈一、栈的结构栈是常用的数据结构,遵循先进后出或后进先出的原则(LIFO),结构如下:只能在一端进行插入和删除操作,即栈顶,另一端成为栈底;向栈中添加一个元素成为进栈或压栈,从栈顶删除一个元素成为出栈或弹出栈。函数调用栈:通过函数的形式形成栈方式的调用 function A(){ B(); console.log('A已执行完'); } function B(){ C()
摘要由CSDN通过智能技术生成

js学习栈

一、栈的结构

栈是常用的数据结构,遵循先进后出或后进先出的原则(LIFO),结构如下:

栈的结构
只能在一端进行插入和删除操作,即栈顶,另一端成为栈底;向栈中添加一个元素成为进栈或压栈,从栈顶删除一个元素成为出栈或弹出栈。

函数调用栈:通过函数的形式形成栈方式的调用

        function A(){
   
            B();
            console.log('A已执行完');
        }
        function B(){
   
            C();
            console.log('B已执行完');
        }
        function C(){
   
            console.log('C已执行完');
        }
        A();

二、封装栈(形成栈结构)

栈与数组或链表挂钩,但是仅具备它们之中的部分方法:

(1)push():进栈
(2)pop():出栈并返回出栈元素
(3)peek():查看栈顶元素
(4)isEmpty():判断栈是否为空
(5)clear():清空栈
(6)size():查看栈元素个数

封装栈常用的是构造函数和类的方法:

使用数组方式封装栈:

            //构造函数方式
            function Stack(){
   
            this.item = [];
            Stack.prototype.push = function(element){
   
                this.item.push(element);
            }
            Stack.prototype.pop = function(element){
   
                return this.item.pop(element);
            }
            Stack.prototype.peek = function(){
   
                return this.item[this.item.length - 1];
            }
            Stack.prototype.isEmpty = function(){
   
                
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值