栈是一种遵从先后进先出的数据结构。栈分为栈底和栈顶,先添加或是待删除的元素都保存在栈的末尾,也就是栈顶。另一端就是栈底了。比如堆放的一摞书或是一堆盘子就跟栈的结构一样,后面进去的总是先出来。
首先我们创建一个类来表示栈 先从骨架开始,在慢慢往里面添加方法。
function stacks(){};
然后我们选择一种方式来保存栈里面的元素,我们可以选择数组
var arr=[ ];
接着我们介绍一下栈的一些方法:1、push(Elements) 添加一个或多个元素到栈顶
2、pop( ) 移除栈顶元素并返回这个元素
3、peek( ) 返回栈顶的元素(不对栈做任何修改)
4、isEmpty( ) 判断一个栈是否为空栈,是则返回true,反之返回false
5、clear( ) 移除栈里的所有元素
6、size( ) 和数组的length属性相似,返回栈里元素个数
现在让我们来实现上面的几个方法:
1、 this.push=function(element){
arr.push(element)
}
2、 this.pop=function(){
return arr.pop()
}
3、 this.peek=function(){
return arr[arr.length-1]
}
4、 this.isEmpty=function(){
return arr.length==0
}
5、 this.clear=function(){
arr=[ ]
}
6、 this,size=function(){
return arr.length
}
到这里栈的方法就已经写好了,把方法放进开始创建的骨架里,那么一个完整的栈也就完成了!
function stacks(){
var arr=[ ];
this.push=function(element){
arr.push(element)
};
this.pop=function(){
return arr.pop()
};
this.peek=function(){
return arr[arr.length-1]
};
this.isEmpty=function(){
return arr.length==0
};
this.clear=function(){
arr=[ ]
};
this.size=function(){
return arr.length
};
}
现在就来使用这个函数 var fn=new stacks()
fn.push(10)//推进数字10
fn.size()//返回个数1
fn.clear()//清除元素
fn.isEmpty()//检查是否为空,返回true
其他方法就不一一试了,就这样,我们创建了一个完整的栈方法。还有从十进制到二进制的转化,有兴趣就在深入了解一下。