数据结构——栈

栈是一种遵从先后进先出的数据结构。栈分为栈底和栈顶,先添加或是待删除的元素都保存在栈的末尾,也就是栈顶。另一端就是栈底了。比如堆放的一摞书或是一堆盘子就跟栈的结构一样,后面进去的总是先出来。

首先我们创建一个类来表示栈  先从骨架开始,在慢慢往里面添加方法。

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

其他方法就不一一试了,就这样,我们创建了一个完整的栈方法。还有从十进制到二进制的转化,有兴趣就在深入了解一下。

猜你喜欢

转载自www.cnblogs.com/xzhan/p/8991897.html