数据结构与算法

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

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

  定义: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 % 2decNumer = 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>

1. 数据结构与算法——栈相关推荐

  1. 数据结构与算法-栈与队列

    数据结构与算法-栈与队列 栈 基本概念 简单表述就是仅在表尾进行插入和删除操作的线性表. 常见操作 入栈和出栈, 均在线性表的尾部进行. 基本原则就是, 先入后出. 队列 基本概念 和栈不同的是,队列 ...

  2. 数据结构与算法 -- 栈 ADT

    这两天翻了下数据结构与算法分析.严蔚敏的数据结构.C和指针.C Primer Plus这些本书,受益很多.不过大多的示例不够完整,需要自己动手编写程序.又看了遍培训时的笔记,虽然很糙但是精华的部分还是 ...

  3. 数据结构与算法 / 栈(stack)

    @time 2019-07-24 @author Ruo_Xiao @reference 极客时间 -> 数据结构与算法之美 ---------------------------------- ...

  4. JavaScript数据结构与算法——栈详解

    1.栈基本知识 栈是一种特殊的列表,栈的元素只能通过列表的一端访问,这一端成为栈顶,栈具有先进后出的特点,要想访问栈底的元素,就必须将上边的元素先拿出来.对栈的操作主要是入栈和出栈,通过push()和 ...

  5. 数据结构与算法 栈的数组实现

    Java数据结构和算法 上一篇 主目录 下一篇 package stack;import java.util.Scanner;public class ArrayStackDemo {public s ...

  6. char栈java,Java数据结构与算法-栈和队列(示例代码)

    (摘录加总结)------ 栈和队列不属于基础的数据结构,它们都属于线性表. 一.栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构.按照"先进后出&qu ...

  7. 数据结构与算法—栈详解

    目录 什么是栈 设计与介绍 数组实现 结构设计 push插入 pop弹出并返回首位 其他操作 链表实现 结构设计 push插入 pop弹出 其他操作 实现代码 数组实现 链表实现 测试 总结 什么是栈 ...

  8. 数据结构与算法 | 栈

    栈 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作.进行数据插入和删除操作的一端为栈顶,另一端为栈底.栈中元素遵循先进后出的原则 假设我们依次将1, 2, 3, 4压入栈中 当我们再 ...

  9. 数据结构和算法——栈、队列、堆

    文章目录 1.预备知识 1.1 栈 1.2 队列 1.3 堆 2.用队列实现栈 2.1 题目描述 2.2 解题思路 2.3 C++实现 3.用栈实现队列 3.1 题目描述 3.2 解题思路 3.3 C ...

最新文章

  1. 常用开源协议介绍以及开源软件规范列表
  2. THINKPHP3.2+PHP5.3 配置MEMCACHE
  3. MS17-010漏洞复现
  4. 如何在Jackson中使用PropertyNamingStrategy
  5. MSP432 库函数实现 PID 电机调角度、调速
  6. 实用c语言程序设计教材,实用C语言程序设计
  7. 远程计算机怎么安装软件安装,轻松一步把电脑上的软件远程安装到电视上!
  8. IEnumerable
  9. Transitions Among the Processor’s Operating Modes
  10. ETH 5分钟内涨幅2.06%,现价1104.03usdt
  11. VBA中 各种数据类型的使用(自定义数据类型Type,数组,数据字典)、读写文件
  12. api获取控件窗口的矩形大小_DevExpress 通用控件系列(4):SimpleButton
  13. 访问虚拟机web应用程序
  14. SQLyog简介和使用
  15. 捷联惯导系统学习2.3(方向余弦阵微分方程)
  16. tyvj P1179 飘飘乎居士数列游戏
  17. 可以用云服务器挂机传奇吗,蜂窝云挂机划算吗 游戏蜂窝云挂机怎么用
  18. 一只小蜜蜂(C ++ 详解 )
  19. 使用Python绘制圣诞树教程(附源代码)
  20. Go语言中的uint和int的区别

热门文章

  1. 怎样学好python安全编程_Python高级安全编程 - 安全牛课堂 - 领先的信息安全在线教育平台
  2. .NET5-统一平台(一统江湖)
  3. windows的cmd中切换路径 cd指令
  4. 提取某一个镇的行政边界_高德地图api获取行政边界矢量方法
  5. 【综合案例】信用评分模型开发
  6. 设圆半径为5,圆柱高为3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 编程序,用 scanf 输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字...
  7. STM32卡尔曼滤波
  8. 推荐一款优秀的国内开源工具类库Hutool,让你的代码量减少90%
  9. 小学计算机听课总评,小学生听课评语
  10. markdown数学公式编辑