zoukankan      html  css  js  c++  java
  • (js描述的)数据结构[栈结构](2)

    (js描述的)数据结构[栈结构](2)

    一.什么是栈结构

    1.一种受限制的线性结构,这种结构可以基于数组来实现。
    2.可以抽象成一个容器,上面的是栈顶,底下的是栈底。所以仅允许对栈顶进行操作,

    二.栈结构的应用

    1.函数式调用栈:基于栈的形式来进行函数的整体调用。
    2.递归:栈溢出就是其中的一点。

    三. 栈结构常见的操作

    1. push(): 添加一个元素到栈顶。
    2. pop(): 移除栈顶的元素。
    3. peek(): 返回栈顶的元素,不对栈结构做任何的修改。
    4. isEmpty(): 判断栈是否为空,不空的话返回 true, 空的话返回 false。
    5. size(): 返回栈里的元素个数。
    6. toString():将栈内容以字符串的方式的返回。

    四.用代码封装栈结构

    function Stack() {
            this.items = []
            this.prototype.push = function(element) {
                this.items.push(element)
            }
            this.prototype.pop = function() {
                return this.items.pop()
            }
            this.prototype.peek = function () {
                return this.items[this.items.length - 1]
            }
            this.prototype.isEmpty = function () {
                if (this.items.length === 0) {
                    return false
                }
                return true
            }
            this.prototype.size = function () {
                return this.items.length
            }
            this.prototype.toString = function() {
                var str = ''
                for (var i=0; i< this.items.length; i++) {
                    str += this.items[i] + ' '
                }
                return str
            }
        }
        var s = new Stack()
    

    五.应用

    十进制转二进制

    function dec2bin(decNumber) {
            var binStack = new Stack()
    
            while (decNumber > 0) {
                binStack.push(decNumber % 2 )
                decNumber = Math.floor(decNumber / 2)
            }
            var binAryString = ''
            while (!binStack.isEmpty()) {
                binAryString += binStack.pop()
            }
            return binAryString
        }
    
  • 相关阅读:
    BZOJ 3208: 花神的秒题计划Ⅰ
    BZOJ 3207: 花神的嘲讽计划Ⅰ
    BZOJ 2732: [HNOI2012]射箭
    BZOJ 3165: [Heoi2013]Segment
    BZOJ 3626: [LNOI2014]LCA
    2017 01 16 校内小测 ZXR专场
    BZOJ 3101: N皇后
    BZOJ 1106: [POI2007]立方体大作战tet
    BZOJ 2084: [Poi2010]Antisymmetry
    【UOJ#228】基础数据结构练习题 线段树
  • 原文地址:https://www.cnblogs.com/jackson1/p/12682679.html
Copyright © 2011-2022 走看看