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

    队列和栈的区别

    队列结构:先进先出

    栈结构:后进先出

    画图理解栈

    封装栈函数

    function Stack() {
        this.container = [];
    }
    Stack.prototype = {
        constructor: Stack,
        //进栈执行
        enter: function enter(element) {
            this.container.unshift(element)
        },
        //出栈执行
        leave: function leave() {
            return this.container.shift()
        },
        //获取栈元素的数量
        size: function size() {
            return this.container.length;
        },
        //获取栈中的元素
        value: function value() {
            return JSON.parse(JSON.stringify(this.container))
        },
    };
    let st = new Stack();
    for (let i = 1; i <= 6; i++) {
        st.enter(i)
    }
    console.log(st.value())
    

    练习

    // 按照6 5 4 3 2 1的顺序进栈,中间可以随时出栈,问下面哪一个出栈是不合法的

    A:5 4 3 6 1 2

    B:4 5 3 2 1 6

    C:3 4 6 5 2 1

    D:2 3 4 1 5 6

    答案:选c 6进栈 5进栈 4进栈 3进栈 ->3出栈 4出栈 6出栈出现问题 6上面还有5 所以不合法

    利用栈结构将十进制转化为二进制

    封装函数

    代码

    function decimal2(decimal) {
        let stack = new Stack()
        while (decimal > 0) {
            let merchant = Math.floor(decimal / 2),
            remainder = decimal % 2 ;
            stack.enter(remainder);
            decimal = merchant
        }
        return stack.value().join('')
    }
    let n = 954284
    console.log(n.toString(2));
    console.log(decimal2(n))
    
  • 相关阅读:
    SQL 分页存储
    ubuntu下删除openjdk,改用sun jdk
    LCD 驱动的整体分析。
    关于IT行业人员吃的都是青春饭?[透彻讲解]
    【转载】I.MX25上摄像头调试总结
    wifi 移植
    函数指针的透彻分析
    关于module_param()宏 (转)
    problem with aptget update ubuntu 11.10
    YUV 格式讲解
  • 原文地址:https://www.cnblogs.com/loveliang/p/14029980.html
Copyright © 2011-2022 走看看