IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 1. 数据结构与算法——栈 -> 正文阅读

[数据结构与算法]1. 数据结构与算法——栈

数据结构与算法

数据结构是计算机中存储、组织数据的方式

算法通俗理解就是解决问题的方法/步骤逻辑

	 定义:
	 1.一个有限的指令集,每条指令的描述不依赖与语言
	 2.接受一些输入(也可能不需要输入),产生输出
	 3.一定在有限步骤之后终止

数据结构的实现,离不开算法

数组是一种线性结构,可以在数组的任意位置插入和删除数据
为了实现某些功能,必须对这种任意性加以限制
栈和队列就是常见的受限的线性结构

 后进先出  LIFO   类似于子弹夹

在这里插入图片描述

在这里插入图片描述

所以递归容易出现栈溢出

在这里插入图片描述

栈结构的实现

1.基于数据
2.基于链表

基于数据实现栈结构
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>itjc8</title>
</head>
<body>
<script>
    // 栈类
    function Stack() {
        // 栈中的属性
        var items = []

        // 栈相关的方法
        // 压栈操作
        this.push = function (element) {
            items.push(element)
        }
		// 原型方式   JS面向原型
		// Stack.prototype.push = function(){}	
		
        // 出栈操作
        this.pop = function () {
            return items.pop()
        }

        // peek操作  窥视
        this.peek = function () {
            return items[items.length - 1]
        }

        // 判断栈中的元素是否为空
        this.isEmpty = function () {
            return items.length == 0
        }

        // 获取栈中元素的个数
        this.size = function () {
            return items.length
        }
    }

//    // 模拟面试题
//    var stack = new Stack()
//
//    // 情况下代码模拟
//    stack.push(6)
//    stack.push(5)
//    stack.pop()     // 5
//    stack.push(4)
//    stack.pop()     // 4
//    stack.push(3)
//    stack.pop()     // 3
//    stack.pop()     // 6
//    stack.push(2)
//    stack.push(1)
//    stack.pop()     // 1
//    stack.pop()     // 2

    // 封装十进制转二进制的函数
    function dec2bin(decNumer) {
        // 定义变量
        var stack = new Stack()
        var remainder;

        // 循环除法
        while (decNumer > 0) {
            remainder = decNumer % 2
            decNumer = Math.floor(decNumer / 2)
            stack.push(remainder)
        }

        // 将数据取出
        var binayriStrng = ""
        while (!stack.isEmpty()) {
            binayriStrng += stack.pop()
        }
        return binayriStrng
    }

    // 测试函数
    alert(dec2bin(10))
    alert(dec2bin(233))
    alert(dec2bin(1000))
</script>
</body>
</html>

在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:22:23  更:2022-05-07 11:23:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:44:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码