栈
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;
}