数据结构之栈(JavaScript描述)
栈数据结构
栈是一种遵从后进先出原则的有序集合。新添加或待删除的元素都保存在栈的同一端,称为栈顶,另一端就叫栈底。在栈内,锌元素都靠近栈顶,救援都接近栈底
类似栈的例子

栈也被用在编程语言你的编译器和内存中保存变量、方法调用等,也被用于浏览器历史记录(浏览器的返回按钮)
创建一个基于数组的栈
- 创建一个类表示栈
- 栈内应该有一些方法
- 添加一个新元素到栈顶
- 删除栈顶元素,同时返回这个被删除的元素
- 返回栈顶元素
- 判断栈内是否为空
- 移出栈内所有元素
- 返回栈内元素个数
创建一个类表示栈
class Stack{
constructor(){
this.items = [];
}
}
添加一个新元素到栈顶
push(el){
return this.items.push(el)
}
移除栈顶一个元素
pop(){
const result = this.items[this.size() - 1]
this.items.pop()
return result
}
查看栈顶元素
peek(){
return this.items[this.size() - 1]
}
判断栈内是否为空
isEmpty(){
return this.size() === 0
}
清空栈内元素
clear(){
return this.items = [];
}
返回栈内元素个数
size(){
return this.items.length;
}
创建一个基于对象的Stack类
其需要的方法个数不变,需要改变方法内部代码
创建一个类表示栈
class Stack{
constructor(){
this.items = {};
this.count = 0;
}
}
添加一个新元素到栈顶
push(el){
this.items[this.count] = el;
this.count++;
}
移除栈顶一个元素
pop(){
if(this.isEmpty()){
return undefined
}
this.count--;
const result = this.items[this.count]
delete this.items[this.count]
return result;
}
查看栈顶元素
peek(){
return this.items[this.size() - 1]
}
判断栈内是否为空
isEmpty(){
return this.size() === 0
}
清空栈内元素
clear(){
this.items = {};
this.count = 0
}
返回栈内元素个数
size(){
return this.count;
}
数据结构之栈(JavaScript描述)的更多相关文章
- 《数据结构与算法JavaScript描述》
<数据结构与算法JavaScript描述> 基本信息 作者: (美)Michael McMillan 译者: 王群锋 杜欢 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9 ...
- 翻阅《数据结构与算法javascript描述》--数组篇
导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性 ...
- 数据结构与算法javascript描述
<数据结构与算法javascript描述>--数组篇 导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScri ...
- 列表的实现-----数据结构与算法JavaScript描述 第三章
实现一个列表 script var booklist = new List(); booklist.append('jsbook'); booklist.append('cssbook'); book ...
- 《数据结构与算法JavaScript描述》中的一处错误
最近在看<数据结构与算法JavaScript描述>这本书,看到选择排序这部分时,发现一个比较大的错误. 原书的选择排序算法是这样的: function selectionSort() { ...
- 数据结构与算法 Javascript描述
数据结构与算法系列主要记录<数据结构与算法 Javascript描述>学习心得
- 数据结构与算法JavaScript描述——栈
栈就是和列表类似的一种数据结构,它可用来解决计算机世界里的很多问题. 栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现. 栈的使用遍布程序语言实现的方方面面,从表 ...
- 数据结构与算法JavaScript描述——栈的使用
有一些问题特别适合用栈来解决.本节就介绍几个这样的例子. 1) 数制间的相互转换 可以利用栈将一个数字从一种数制转换成另一种数制.假设想将数字n 转换为以b 为基数的数字,实现转换的算法如下. 使 ...
- 栈--数据结构与算法Javascript描述(4)
栈 Stack 概念 栈是一种高效的数据结构,数据只能在栈顶添加或者删除,所以这样的操作很快,而且容易实现.栈的使用遍布程序语言的方方面面,从表达式求值到处理函数调用. 栈是一种特殊的列表,栈内的元素 ...
随机推荐
- 配置mysql数据库时出再错误:LookupError: No installed app with label 'admin'.
版本: windows10+py37+django2.2 错误: 项目启动时出现,No installed app with label 'admin' 解决办法: 安装最新的 pip install ...
- Redis缓存中的常见问题
缓存穿透:是指查询一个Redis和数据库中都不存在的数据. 问题:查询一个Redis和数据库中都不存在的数据,大量请求去访问数据库,导致数据库宕机. 解决办法: 1.根据id查询,如果id是自增的,将 ...
- 《C++ Primer》笔记 第10章 泛型算法
迭代器令算法不依赖于容器,但算法依赖于元素类型的操作. 算法永远不会执行容器的操作.算法永远不会改变底层容器的大小. accumulate定义在头文件numeric中,接受三个参数,前两个指出需要求和 ...
- Java多态练习题
需求: 宠物饿了,需要铲屎官给宠物喂食. 不同宠物吃的东西不一样. 不同宠物恢复后体力值不一样. 铲屎官和狗狗玩接飞盘游戏,狗狗健康值减少10,与铲屎官亲密度增加5 铲屎官和 企鹅玩游泳游戏,企鹅健康 ...
- Javascript学习,DOM对象,方法的使用
JavaScript: ECMAScript: BOM: DOM: 事件 DOM的简单学习 功能:控制html文档内容 代码:获取页面标签(元素)对象和Element document.getElem ...
- Python Flask框架路由简单实现
Python Flask框架路由的简单实现 也许你听说过Flask框架.也许你也使用过,也使用的非常好.但是当你在浏览器上输入一串路由地址,跳转至你所写的页面,在Flask中是怎样实现的,你是否感到好 ...
- groovy-map.each{}
ConfigDetail postEdiUrl(TtxSession sess, String code) { return cdSvc.getByRecordTypeAndIdentifier(se ...
- 如何自学成 Python 大神?这里有些建议
人生苦短,我用 Python.为什么?简单明了的理由当然是开发效率高.但是学习 Python 的初学者往往会面临以下残酷的现状:网上充斥着大量的学习资源.书籍.视频教程和博客,但是大部分都是讲解基础知 ...
- Linux普通用户安装配置mysql(非root权限)
Linux普通用户安装配置mysql(非root权限) 说明:在实际工作中,公司内网的机器我们一般没有root权限,也没有连网,最近参考网上的资料使用一般的账户成功安装mysql,记录如下 Linux ...
- MD摘要算法
import static org.junit.Assert.*; import java.security.MessageDigest; //消息摘要 public class MDCoder { ...