数据结构与算法JavaScript (一) :栈
2015-01-29 12:55
204 查看
数据结构与算法JavaScript这本书算是讲解得比较浅显的,优点就是用javascript语言把常用的数据结构给描述了下,书中很多例子来源于常见的一些面试题目,算是与时俱进,业余看了下就顺便记录下来吧
git代码下载:https://github.com/JsAaron/data_structure.git
栈结构
特殊的列表,栈内的元素只能通过列表的一端访问,栈顶
后入先出(LIFO,last-in-first-out)的数据结构
javascript提供可操作的方法, 入栈 push, 出栈 pop,但是pop会移掉栈中的数据
实现一个栈的实现类
底层存数数据结构采用 数组
因为pop是删除栈中数据,所以需要实现一个查找方法 peek
实现一个清理方法 clear
栈内元素总量查找 length
查找是否还存在元素 empty
回文
回文就是指一个单词,数组,短语,从前往后从后往前都是一样的 12321.abcba
回文最简单的思路就是, 把元素反转后如果与原始的元素相等,那么就意味着这就是一个回文了
这里可以用到这个栈类来操作
看看这个isPalindrome函数,其实就是通过调用Stack类,然后把传递进来的word这个元素给分解后的每一个组成单元给压入到栈了,根据栈的原理,后入先出的原则,通过pop的方法在反组装这个元素,最后比较下之前与组装后的,如果相等就是回文了
递归
用递归实现一个阶乘算法
5! = 5 * 4 * 3 * 2 * 1 = 120
用递归
用栈操作
通过while把n = 5 递减压入栈,然后再通过一个循环还是根据栈的后入先出的原则,通过pop方法把最前面的取出来与product叠加
git代码下载:https://github.com/JsAaron/data_structure.git
栈结构
特殊的列表,栈内的元素只能通过列表的一端访问,栈顶
后入先出(LIFO,last-in-first-out)的数据结构
javascript提供可操作的方法, 入栈 push, 出栈 pop,但是pop会移掉栈中的数据
实现一个栈的实现类
底层存数数据结构采用 数组
因为pop是删除栈中数据,所以需要实现一个查找方法 peek
实现一个清理方法 clear
栈内元素总量查找 length
查找是否还存在元素 empty
回文就是指一个单词,数组,短语,从前往后从后往前都是一样的 12321.abcba
回文最简单的思路就是, 把元素反转后如果与原始的元素相等,那么就意味着这就是一个回文了
这里可以用到这个栈类来操作
递归
用递归实现一个阶乘算法
5! = 5 * 4 * 3 * 2 * 1 = 120
用递归
相关文章推荐
- JavaScript数据结构与算法(三) 优先级队列的实现
- 集合的实现 -- 数据结构与算法的javascript描述 第九章
- 数据结构与算法JavaScript - 集合
- JavaScript 中学习数据结构与算法
- 链表的实现 -- 数据结构与算法的javascript描述 第六章
- JavaScript数据结构与算法之集合(Set)
- 数据结构与算法JavaScript (三) 链表
- JavaScript数据结构与算法
- 数据结构与算法JavaScript (一) 栈
- JavaScript数据结构与算法(六) 链表的实现
- javascript数据结构与算法--高级排序算法(快速排序法,希尔排序法)
- 【JavaScript】JavaScript数据结构与算法 —— 二叉树
- 字典 -- 数据结构与算法的javascript描述 第七章
- javascript实现数据结构与算法系列:栈 -- 顺序存储表示和链式表示及示例
- JavaScript数据结构与算法--开篇立意
- 为什么我要放弃javaScript数据结构与算法(第四章)—— 队列
- 数据结构与算法(JavaScript实现)
- 数据结构与算法JavaScript - 数组
- 为什么我要放弃javaScript数据结构与算法(第九章)—— 图
- 数据结构与算法JavaScript (三) 链表