zoukankan      html  css  js  c++  java
  • js封装一个栈

    // 基于数组封装一个栈
    function Stack(){
        this.items = [];
        // 压栈
        Stack.prototype.push = function(element){
            return this.items.push(element)
        }
        // 出栈
        Stack.prototype.pop = function(){
            return this.items.pop()
        }
        // 查看栈顶元素
        Stack.prototype.peek = function(){
            return this.items[this.items.length - 1]
        }
        // 判断栈是否为空
        Stack.prototype.isEmpty = function(){
            return this.items.length == 0     
        }
        // 获取栈中元素的个数
        Stack.prototype.size = function(){
            return this.items.length
        }
        // toString
        Stack.prototype.toString = function(){
            let str = '';
            for(let i = 0;i < this.items.length;i++){
                str += this.items[i] + ' '
            }
            return str
        }
    }
    
    let st = new Stack();
    st.push(10);
    st.push(20);
    st.push(30);
    st.push(40);
    console.log(st);
    st.pop()
    st.pop()
    // console.log(st);
    // console.log(st.peek());
    // console.log(st.size());
    // console.log(st.isEmpty());
    // console.log(st.toString());
    
    
    // 将10进制转2进制
    function dec2bin(decNum){
        // 实例一个栈对象
        var sta = new Stack();
        // 循环
        while(decNum > 0){
            // 将余数压入栈
            sta.push(decNum % 2);
            // 整数作为下次运行的数字
            decNum = Math.floor(decNum / 2);
        }
        // 从栈中取出0和1,构成二进制
        let str = '';
        while(sta.size() > 0){
            str += sta.pop();
        }
        return str
    
    }
    
    console.log(dec2bin(10));      // 1010
    console.log(dec2bin(100));     // 1100100
  • 相关阅读:
    Java中Filter、Servlet、Listener的学习 (转)
    Servlet 获取商品信息作业
    Servlet 注册与提交作业
    jsp servlet的区别和联系(转)
    用户注册验证留言程序
    作业1
    简单新闻发布系统
    webform 增速删改查 方法
    存取数据库图片
    打印 保存
  • 原文地址:https://www.cnblogs.com/cyf666cool/p/14837166.html
Copyright © 2011-2022 走看看