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 % 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. 数据结构与算法——栈相关推荐
- 数据结构与算法-栈与队列
数据结构与算法-栈与队列 栈 基本概念 简单表述就是仅在表尾进行插入和删除操作的线性表. 常见操作 入栈和出栈, 均在线性表的尾部进行. 基本原则就是, 先入后出. 队列 基本概念 和栈不同的是,队列 ...
- 数据结构与算法 -- 栈 ADT
这两天翻了下数据结构与算法分析.严蔚敏的数据结构.C和指针.C Primer Plus这些本书,受益很多.不过大多的示例不够完整,需要自己动手编写程序.又看了遍培训时的笔记,虽然很糙但是精华的部分还是 ...
- 数据结构与算法 / 栈(stack)
@time 2019-07-24 @author Ruo_Xiao @reference 极客时间 -> 数据结构与算法之美 ---------------------------------- ...
- JavaScript数据结构与算法——栈详解
1.栈基本知识 栈是一种特殊的列表,栈的元素只能通过列表的一端访问,这一端成为栈顶,栈具有先进后出的特点,要想访问栈底的元素,就必须将上边的元素先拿出来.对栈的操作主要是入栈和出栈,通过push()和 ...
- 数据结构与算法 栈的数组实现
Java数据结构和算法 上一篇 主目录 下一篇 package stack;import java.util.Scanner;public class ArrayStackDemo {public s ...
- char栈java,Java数据结构与算法-栈和队列(示例代码)
(摘录加总结)------ 栈和队列不属于基础的数据结构,它们都属于线性表. 一.栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构.按照"先进后出&qu ...
- 数据结构与算法—栈详解
目录 什么是栈 设计与介绍 数组实现 结构设计 push插入 pop弹出并返回首位 其他操作 链表实现 结构设计 push插入 pop弹出 其他操作 实现代码 数组实现 链表实现 测试 总结 什么是栈 ...
- 数据结构与算法 | 栈
栈 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作.进行数据插入和删除操作的一端为栈顶,另一端为栈底.栈中元素遵循先进后出的原则 假设我们依次将1, 2, 3, 4压入栈中 当我们再 ...
- 数据结构和算法——栈、队列、堆
文章目录 1.预备知识 1.1 栈 1.2 队列 1.3 堆 2.用队列实现栈 2.1 题目描述 2.2 解题思路 2.3 C++实现 3.用栈实现队列 3.1 题目描述 3.2 解题思路 3.3 C ...
最新文章
- 常用开源协议介绍以及开源软件规范列表
- THINKPHP3.2+PHP5.3 配置MEMCACHE
- MS17-010漏洞复现
- 如何在Jackson中使用PropertyNamingStrategy
- MSP432 库函数实现 PID 电机调角度、调速
- 实用c语言程序设计教材,实用C语言程序设计
- 远程计算机怎么安装软件安装,轻松一步把电脑上的软件远程安装到电视上!
- IEnumerable
- Transitions Among the Processor’s Operating Modes
- ETH 5分钟内涨幅2.06%,现价1104.03usdt
- VBA中 各种数据类型的使用(自定义数据类型Type,数组,数据字典)、读写文件
- api获取控件窗口的矩形大小_DevExpress 通用控件系列(4):SimpleButton
- 访问虚拟机web应用程序
- SQLyog简介和使用
- 捷联惯导系统学习2.3(方向余弦阵微分方程)
- tyvj P1179 飘飘乎居士数列游戏
- 可以用云服务器挂机传奇吗,蜂窝云挂机划算吗 游戏蜂窝云挂机怎么用
- 一只小蜜蜂(C ++ 详解 )
- 使用Python绘制圣诞树教程(附源代码)
- Go语言中的uint和int的区别
热门文章
- 怎样学好python安全编程_Python高级安全编程 - 安全牛课堂 - 领先的信息安全在线教育平台
- .NET5-统一平台(一统江湖)
- windows的cmd中切换路径 cd指令
- 提取某一个镇的行政边界_高德地图api获取行政边界矢量方法
- 【综合案例】信用评分模型开发
- 设圆半径为5,圆柱高为3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 编程序,用 scanf 输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字...
- STM32卡尔曼滤波
- 推荐一款优秀的国内开源工具类库Hutool,让你的代码量减少90%
- 小学计算机听课总评,小学生听课评语
- markdown数学公式编辑