javascript数据结构与算法——栈
Posted 飞鲨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript数据结构与算法——栈相关的知识,希望对你有一定的参考价值。
前言:
栈就是和列表类似的一种数据结构,不过栈的特点是\'后人先出\'。栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现。
1. 栈的介绍:
栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端被称为栈顶,另一端称为栈底。比如饭店罗盘子,只能从最上面取盘子,盘子洗干净后,也只能罗在做上面。栈被称为一种先入后出的(LIFO)的数据结构。
对栈的两种主要操作是将一个元素压人栈和将一个元素弹出栈。入栈使用push()方法,出栈使用pop()方法。示意图演示了入栈和出栈的过程。pop()方法虽然可以访问栈顶元素,但是调用该方法后,栈顶的元素也从栈中永久被删除。peek()方法则只返回栈顶元素,而不是删除它。
示意图:
2. 栈的实现
/* * 1. 构造一个函数将其初始化为一个空数组。 * 2. top记录栈顶位置,被构造函数初始化为0,表示栈顶对应的数组起始位置为0, * 如果有元素被压入栈,该变量也随之增加;被弹出栈,该变量随之减小 * */ function Stack() { this.dataStore = []; this.top = 0; this.push = push; this.pop = pop; this.peek = peek; this.clear = clear; this.length = length; } function push(element) { return this.dataStore[this.top++] = element; } function pop() { return this.dataStore[--this.top]; } function peek() { return this.dataStore[this.top-1] } function length() { return this.top } function clear() { this.top = 0; }
以上是关于javascript数据结构与算法——栈的主要内容,如果未能解决你的问题,请参考以下文章
手把手5分钟掌握JavaScript栈数据结构JavaScript数据结构与算法系列
手把手5分钟掌握JavaScript栈数据结构JavaScript数据结构与算法系列
震惊!5分钟封装JavaScript栈数据结构Stack类JavaScript数据结构与算法系列