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))
    
  • 相关阅读:
    使用Nginx搭建http服务器
    (七)Docker搭建httpd集群
    zlib库对文件进行压缩和解压操作
    (一)Apache Thrift 的使用
    (一)select、poll、epoll
    (十三)备忘录模式
    (十二)命令模式
    (十一)迭代器模式
    centos下利用httpd搭建http服务器方法
    shell快捷键
  • 原文地址:https://www.cnblogs.com/loveliang/p/14029980.html
Copyright © 2011-2022 走看看