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
        }
    
  • 相关阅读:
    中国剩余定理(SCAUOJ 1077)
    uva 11426 GCD
    LA 4119 Always an integer (数论+模拟)
    uva 12003 Array Transformer (线段树套平衡树)
    uva 10253 Series-Parallel Networks (整数划分+多重集)
    LA 4123 Glenbow Museum
    uva 11361 Investigating Div-Sum Property
    2013多校训练赛第二场 总结
    uva 11174 Stand in a Line (排列组合)
    canvas 画椭圆
  • 原文地址:https://www.cnblogs.com/jackson1/p/12682679.html
Copyright © 2011-2022 走看看