原生js写栈、利用栈实现2~9进制数字转换、判断回文、实现阶乘

本文介绍了如何使用原生JavaScript实现栈的数据结构,强调了栈的“先进后出”特性,并通过设置top值来表示栈顶。栈的应用包括2~9进制数字的转换,其中涉及到将数字分解并进行进制转换的过程;判断回文,通过将字符串元素入栈后再出栈对比是否相同;以及实现阶乘计算,利用栈来处理递归过程。文章还提及了JS中变量在栈内存的分配情况。
摘要由CSDN通过智能技术生成

栈:

只能在顶部进行增删的列表,满足“先进后出”原则,即只能在列表顶部添加新元素,也只能从列表顶部删除新元素,如果要删除中间的元素,必须将其上面的元素挪出来;
由此可知,在实现代码部分,顶部元素很重要,故设置top值表示顶部元素的位置。
提一句题外话,在js中,基本类型的值以及特殊值(null)、引用值的指针均被分派在栈内存中,且是线程分配的。

     function stack(){
         this.data=[];
         this.top=0;
         this.push=push;
         this.pop=pop;
         this.gettop=gettop;//获得最顶部的元素;
         this.res=undefined;//存储pop删除的值
     }
     function push(ele){
         this.data[this.top++]=ele;
     }
     function pop(){
         this.res=this.data.splice(--this.top,1);
         return this.data;
     }
     function gettop(){
         console.log(this.data[this.top-1])
         return this.data[this.top-1]
     }
     var arr=new stack();
     arr.push("a");
     arr.push("b");
     arr.push("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值