美文网首页
javascript构造一个Stack数据结构

javascript构造一个Stack数据结构

作者: 一丁o | 来源:发表于2016-04-13 14:53 被阅读0次

stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。
分析stack的特点:

  • push:在最顶层加入数据。
  • pop:返回并移除最顶层的数据。
  • top:返回最顶层数据的值,但不移除它。
/**
 * @file Stack.js
 * @desc 用js实现stack数据结构
 *
 * *************************
 * 用法:
 *  var stack = new Stack();
 *  stack.push([1,2,3]);
 *  stack.push('xxxxx');
 *  var all = stack.displayAll();
 *  console.log(all);
 *
 * *************************
 */

function Stack() {

    // 返回最后插入的一个数据
    this.top = null;

    // 返回栈内数据的长度
    this.size = 0;
}

Stack.prototype = {
    constructor: Stack,

    // 插入一个数据,放在栈的最后一个位置
    push: function (data) {
        var node = {
            data: data,
            next: null
        };
        node.next = this.top;
        this.top = node;
        this.size++;
    },

    // 返回最后的一个数据
    peek: function () {
        return this.top === null ? null : this.top.data;
    },

    // 从栈里取出最后的一个数据,与peek的区别:peek只读取,pop返回并移除最顶层的数据
    pop: function () {
        if (this.top === null) return null;
        var out = this.top;
        this.top = this.top.next;
        if (this.size > 0) this.size--;
        return out.data;
    },

    // 清楚栈内的数据
    clear: function () {
        this.top = null;
        this.size = 0;
    },

    // 显示站内的所有数据
    displayAll: function () {
        if (this.top === null) return null;
        var arr = [];
        var current = this.top;
        for (var i = 0, len = this.size; i < len; i++) {
            arr[i] = current.data;
            current = current.next;
        }
        return arr;
    }
};


相关文章

  • javascript构造一个Stack数据结构

    stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。分...

  • JavaScript 中的深拷贝和浅拷贝

    JavaScript 内存中的堆和栈 栈(stack):堆是 JavaScript 用来存储静态数据的数据结构。静...

  • stack

    stack 构造函数 stack stkT;//stack采用模板类实现,stack对象的默认构造形式: stac...

  • 【JS基础进阶】(五)JavaScript栈内存与堆内存

    (一)堆(heap),栈(stack)与队列(queue) 栈数据结构 JavaScript中并没有严格意义上区分...

  • 栈 js版

    栈 stack 写在前面:还没想好写啥。 1.什么是栈? 一个后进先出的数据结构 javascript中其实是没...

  • 常用数据结构

    Stack 构造函数:Stack() Queue(接口) 实现:LinkedList

  • 堆栈溢出报错引发的思考

    Stack overflow 这几天开始看买了很久的一本书《javascript数据结构与算法》,我很后悔自己不早...

  • Leetcode--Design

    225. Implement Stack using Queues 使用queue来构造stack, 我们就只能使...

  • java中常用的数据结构

    stack 数据结构 LinkedList 方法 push pop deque 数据结构 LinkedList 方...

  • stack实现

    stack是一种后进先出的数据结构。 stack的顺序写法(数组) stack的链接表示(链表)

网友评论

      本文标题:javascript构造一个Stack数据结构

      本文链接:https://www.haomeiwen.com/subject/wuowlttx.html