一、定义

栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 栈也被用在编程语言的编译器和内存中保存变量、方法调用等。典型的有函数调用。

1.1 栈的创建

    // 后进先出function Stack() {const items = [];this.push = (...ele) => items.push(...ele);this.pop = () => items.pop();this.peek = () => items[items.length-1];this.isEmpty = () => !items.length;this.size = () => items.length;this.clear = () => items = [];this.print = () => console.log(items);}const stack = new Stack();stack.push(1,2,3,4);stack.print();
复制代码

1.2 进制转换

    // 任意进制function baseTransform(decNumber, base) { // 被除数const remStack = new Stack();let rem; // 余数const digits = '0123456789ABCDEF';let result = '';while (decNumber > 0) {rem = decNumber % base;remStack.push(rem);decNumber = Math.floor(decNumber / base);}while(!remStack.isEmpty()) {result += digits[remStack.pop()];}console.log('result => ',result);return result;}baseTransform(10, 2); // => 1010
复制代码

二、总结

栈是最简单的数据结构,遵循的是后进先出的原则。

转载于:https://juejin.im/post/5d0a4db86fb9a07ebd48dab7

JS数据结构初识(一)-栈相关推荐

  1. node 获取表单数据 为空_寻offer之JS数据结构与算法 -- 栈

    栈 栈是一个线性结构,在计算机中是一种相当常见的数据结构. 栈与数组对比 我们知道数组是一种线性结构,并且可以在数组的任意位置插入和删除数据.但是有时候,我们为了实现某些功能,必须对这种任意性加以限制 ...

  2. JS 数据结构之旅 :通过JS实现栈、队列、二叉树、二分搜索树、AVL树、Trie树、并查集树、堆

    JS 数据结构之旅 栈 概念 栈是一个线性结构,在计算机中是一个相当常见的数据结构. 栈的特点是只能在某一端添加或删除数据,遵循先进后出的原则 实现 每种数据结构都可以用很多种方式来实现,其实可以把栈 ...

  3. JS版数据结构第一篇(栈)

    前端入行门槛低,人员参差不齐 前端就是写页面的 前端的人都不懂数据结构和算法 背景 相信大家在社区经常会听到类似以上的话 由于前端上手比较快,而且平时开发时大部分写的都是业务逻辑以及交互,常常导致我们 ...

  4. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  5. JS数据结构与算法_链表

    上一篇:JS数据结构与算法_栈&队列 下一篇:JS数据结构与算法_集合&字典 写在前面 说明:JS数据结构与算法 系列文章的代码和示例均可在此找到 上一篇博客发布以后,仅几天的时间竟然 ...

  6. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  7. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-堆和优先队列(一)

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  8. js 中堆和栈的应用与理解

    js 中堆和栈的应用与理解 定义 堆内存: 栈内存: 堆和栈在js中的应用 栈: 堆内存 堆和栈有两种 一种是说的数据结构-堆,堆栈 一种是说的内存-堆内存,栈内存 我今天要说的就是堆内存和栈内存 定 ...

  9. JS数据结构与算法 笔记

    JS数据结构与算法笔记 前言:不定时更新说明 1. 栈(Stack) 1.1 基于数组实现栈 1.2 基于对象实现栈 1.3 基于链表实现栈 1.4 栈的简单应用 1.4.1 字符串中的括号匹配问题 ...

最新文章

  1. iOS-----Xcode-Debug尝试
  2. linux tomcat 日志路径,linux日志文件在哪 linux安装tomcat
  3. Qt4程序在windows平台下打包发布
  4. binhemedia.cn 联系我们_【图片】想在邵阳市打个水井找谁好,附近专业快速钻井唐师傅联系电话,【邵阳生活吧】...
  5. MATLAB离散傅里叶变换实验结果分析,Matlab离散傅里叶变换实验报告
  6. centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
  7. 【Hadoop Summit Tokyo 2016】数据流与Apache NiFi
  8. UVA10010 Where's Waldorf?【水题】
  9. 【转】NUnit2.0详细使用方法
  10. 使用Calibre Web打造全功能书库
  11. 安卓微信无root降级教程
  12. 【转载】Markdown编辑器如何在标题上添加序号
  13. 彼得林奇+《称雄华尔街》
  14. 【演示文稿制作软件】Focusky教程 | 利用动画角色让演示文稿更生动
  15. 基于Oracle的SQL优化--学习(九)
  16. vue中关键字的搜索,输入关键字列表和分页一起刷新
  17. (试除法+unordered_map+因式分解)acwing 870. 约数个数
  18. 官方也无力回天?“SharedPreferences 存在什么问题?”
  19. java就业培训 | 面试官如何判断应聘者能力的,这一篇就够了
  20. solidity 循环语句

热门文章

  1. .NET 程序员十种常用辅助开发工具
  2. 浅说机器学习中“迭代法”
  3. cmos图像传感器应用实例及其发展趋势分析
  4. LeetCode-1两数之和
  5. R7-6 A-B (20 分)
  6. 2013递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)
  7. 虚拟服务器声卡,如何使用虚拟声卡?虚拟声卡安装教程!
  8. jquery学习记录
  9. 微信小程序中的空格和换行操作
  10. 20170808上课笔记