zoukankan      html  css  js  c++  java
  • 数据结构——栈

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

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

    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

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

  • 相关阅读:
    iOS开发之即时通讯之Socket(AsyncSocket)
    iOS 拨打电话功能
    iOS text的长文本换行
    IOS Mac上查看iPhone上的SQlite数据库
    iOS Code Signing的Invalid处理(根证书无效)
    判断UITextField 输入为空 输入全为空格
    IOS Constraints自动布局适应不同尺寸
    IOS App打包发布流程(公司账号)
    IOS App发布问题:code signing is required for product type "Application" in SDK 'iOS 9.2'
    IOS UIAlertView 和 UIActionSheet的区别
  • 原文地址:https://www.cnblogs.com/xzhan/p/8991897.html
Copyright © 2011-2022 走看看