JavaScript实现基于数组的栈】的更多相关文章

class StackArray {   constructor() {     this.items = [];   }   push(element) {     this.items.push(element);   }   pop() {     return this.items.pop();   }   peek() { return this.items[this.items.length-1];   //如果数组下标为-1,返回值为undefined   }   isEmpty(…
package com.rao.linkList; /** * @author Srao * @className ArrayStack * @date 2019/12/3 13:41 * @package com.rao.linkList * @Description 基于数组的栈 */ public class ArrayStack { private String[] items; //栈中的数据 private int count; //当前栈中元素的个数 private int n;…
栈是一种遵从后进先出(LIFO)原则的有序集合.新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 栈拥有以下方法: push(element): 元素入栈, 添加一个或多个新元素到栈顶 pop(): 元素出栈,移除栈顶的元素,同时返回被移除的元素 peek(): 返回栈顶的元素,不对站内元素做任何修改 isEmpty(): 判断栈是否为空,如果栈内没有任何元素就返回true,否则返回false clear(): 移除栈内的所有元素…
class Stack { constructor() { this.count = 0; this.items = {}; } push(element) { this.items[this.count] = element; this.count++; } pop() { if (this.isEmpty()) { return undefined; } this.count--; const result = this.items[this.count]; delete this.item…
package com.rao.linkList; /** * @author Srao * @className LinkedStack * @date 2019/12/3 13:59 * @package com.rao.linkList * @Description 基于链表的栈 */ public class LinkedStack { /** * 定义节点 */ static class Node{ private String data; private Node next; pub…
学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.数组 几乎所有的语言都原生支持数组类型,因为数组是最简单的内存数据结构.该章节深入学习数组数据结构和它的能力. 1.1 数组添加元素 初始化一个数组 let numbers = [0, 1, 2, 3, 4, 5, 6]; 数组尾部插入元素,只要把值赋给数组中最后一个空位上的元素即可 numbers[numbers.length] = 7; 在 J…
栈是遵循后进先出(LIFO)规则的一种有序集合,比如桌上的一叠书,我们只能从上面放或取. 队列是遵循先进先出(FIFO)规则的一种有序集合,比如排队,先排到的先离开. 数组也是一种有序的集合,它与上面两种数据结构类似.由于JavaScript中的数组本身拥有许多简单的方法,如push(), 所以用数组来表示栈和队列非常简单. 首先回顾一下相关的方法: push():向数组尾部添加一个或多个项. pop():删除数组尾部的一个项. unshift():先数组头部添加一个或多个项. shift():…
JavaScript内置对象-1Array(数组) 学习目标 1.掌握任何创建数组 2.掌握数值元素的读和写 3.掌握数组的length属性 如何创建数组 创建数组的基本方式有两种: 1.使用Array构造函数 语法:new Array() 小括号()说明: (1)预先知道数组要保存的项目数量 (2)向Array构造函数中传递数组应包含的项 2.使用数组字量表示法:由一对包数组项的方括号[]表示,多个数组项之间以逗号隔开. 数组元素的读写 读取和设置值时,使用方括号[]并提供相应的索引 说明:索…
前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基础知识,是程序员的地基. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习. 1. 线性表与非线性表 线性表(Linear List):就是数据排成像一条线一样的结构.每个线性表上的数据最多只有前和后两个方向.数组.链表…
上篇博客介绍了基于数组创建一个栈,这是用对象创建一个栈 s1.声明一个Stack类 class Stack { constructor() { this.count = 0; this.items = {}; } } 在构造器中定义count属性用来记录栈的大小 s2.push()方法,向栈内添加元素,只允许一次插入一个元素 push(element){ this.items[this.count] = element; this.count++; } 使用 count 变量 作为 items…