栈——JavaScript版

数据结构之栈用JavaScript来实现

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./zhan.js"></script>
</head>

<body>
    算法数据结构
    <br>
    //栈的概念 结构 操作
    <br>
    //操作实现 十进制转2进制
    <br>
    //一种后进先出的数据结构
    <br>



    //入栈 栈底 栈顶 出栈
    <br>
    push()入栈
    <br>
    pop()出栈
    <br>
    peek()检查栈顶的元素
    <br>
    isEmpty() 是否为空
    <br>
    clear() 清空栈
    <br>
    size() 栈元素的个数
    <br>


    js实现栈结构--数组
    <br>
    [0,1,2,3,4]
    <br>
    --->push(5)-->[0,1,2,3,4,5]-->pop()-->5
    <br>

   

</body>

</html>

js代码


//函数 :作为一个函数  构造器
//this指向要创建的
var Stack = function () {
    var items = []
    //    this.items = []

    //push添加元素
    this.push = function (element) {
        items.push(element)
        //    var arr =[1,2,3,4]

    }
    //pop 移除栈顶元素
    this.pop = function () {
        items.pop()
    }

    //查看栈顶元素 peek
    this.peek = function () {
        return items[items.length - 1]
    }

    //检查栈是否为空
    this.isEmpty = function () {
        return items.length == 0
    }
    //清除栈

    this.clear = function () {
        items = []
    }
    //获取栈的大小
    this.size = function () {
        return items.length
    }
    //检查items
    this.getItems = function () {
        return items
    }
}




//实例  十进制转二进制

//余数法
//      十除于二

var divBy2 = function (e) {
    var stack = new Stack()
    var yushu
    var string2 = ''
   
    while (e > 0) {
        yushu = e % 2
        

        stack.push(yushu)
        e = Math.floor(e / 2)

    }
    
    
console.log(stack)
   
    while (stack.isEmpty() == false) {
        
       
     string2 += stack.pop()
    }

    return string2
}

//站作用 在编程语言的编译器和内存中保存变量,方法调用


 
// 先完成fun1 ,在完成fun2
var fun1 = function(){
    return console.log('fun1 finish')
}
var fun2 = function(){
    fun1()
    return console.log('fun2 finish')
}
fun2()


//递归
var app = function(){
  app()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值