1.栈的概念

栈和队列是两种重要的线性结构,栈是限定仅在表尾进行插入或删除操作的线性表;表尾称为栈顶,表头称为栈底
栈的修改是按后进先出的原则进行的,因此栈又称为后进先出(Last In First Out)的线性表(简称LIFO结构)
在这里插入图片描述

2.栈的在创建

由于栈是先进后出 那么根据js数组给我们提供的方法 入栈可以用push() 方法 出栈可以用pop()方法
创建一个类来表示栈

function Stack(){
		var items=[];//建立一个空栈
		this.push=function(element){
			items.push(element); //添加一个或几个新元素到栈顶
		};
		this.pop=function(){
			items.pop(); //移除栈顶的一个元素 并返回这个元素
		};
		this.isEmpty=function(){
			return items.length==0; //判断这个栈是否为空
		};
		this.peek=function(){   //返回栈顶元素
			return items[items.length-1];
	};
		this.size=function(){
			return items.length;  //返回栈中的元素个数
		}
		this.clear=function(){
			 items=[]; //清空这个栈
		}
		this.print=function(){
			console.log(items.toString());//将栈中元素输出到控制台
		}

	}
	
3.栈的应用实例
3.1 将十进制转换为任意进制
function baseConverter(decNum,base){
		var remStack=new Stack();
		var rem=' ',
		var baseString=" ",
		var digits='0123456789abcdef';
        while(decNum>0){
        	rem=Math.floor(decNum%base);
        	remStack.push(rem);
        	decNum=Math.floor(decNum/base);
        };
        while(!remStack.isEmpty){
        	 baseString+=digits[remStack.pop()];
        }
        return baseString;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值