JavaScript 数据结构(1):栈 Stack

原创 2015年11月18日 16:42:31
/**
 * 栈(Stack)
 * 后进先出
 */

// Array 实现
/*function Stack () {
    var arr = [];

    return {
        push: function(item){       // 入栈
            arr.push(item);
        },
        pop: function(){        // 出栈
            return arr.pop();
        },
        peek: function(){       // 查看栈顶元素
            return arr[arr.length-1];
        },
        isEmpty: function(){        // 判读栈是否为空
            return arr.length === 0;
        }
    };
}*/

// Object 实现
function Stack () {
    var stack = {},
        top = -1;

    return {
        push: function(item){       // 入栈
            stack[++top] = item;
        },
        pop: function(){        // 出栈
            if(top < 0){
                return undefined;
            }else{
                return stack[top--];
            }
        },
        peek: function(){       // 查看栈顶元素
            if(top < 0){
                return undefined;
            }else{
                return stack[top];
            }
        },
        isEmpty: function(){        // 判读栈是否为空
            return top < 0;
        }
    };
}


// test
var stack = new Stack();

console.dir(stack);

console.log(stack.isEmpty());

stack.push(1);
stack.push(2);
console.log(stack.isEmpty());

console.log(stack.peek());
console.log(stack.pop());
console.log(stack.peek());
版权声明:本文为博主原创文章,未经博主允许不得转载。

C++_STL_数据结构_stack_栈

栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出...
  • yimingsilence
  • yimingsilence
  • 2016年11月08日 20:35
  • 1112

Java数据结构----栈(Stack)源码分析和个人简单实现

栈单链表实现:没有长度限制,并且出栈和入栈速度都很快 public class LinkedListStack { private LinkedList linkedList = new L...
  • oChangWen
  • oChangWen
  • 2016年02月17日 23:29
  • 2939

java数据结构与算法之栈(Stack)设计与实现

【版权申明】转载请注明出处(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/53362993 出自【zejia...
  • javazejian
  • javazejian
  • 2016年11月28日 12:27
  • 9577

【数据结构】使用栈Stack解决迷宫问题

我们看下面这个迷宫----方阵(也可以是矩阵):650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7E/E9/wKiom1cMngag...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:18
  • 579

数据结构栈之javascript实现

栈是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出
  • lilythy2016
  • lilythy2016
  • 2016年08月25日 17:38
  • 410

Java数据结构与算法之stack栈

目录: 1.栈概述 2.数组实现自定义栈 3.链表实现自定义栈 4.集合实现自定义栈 1.栈概述 栈和队列一样,也是线性表的一种,它唯一的特点是需要满足先进后出(FILO)的规则,也就是只能对栈的一...
  • qq_28057577
  • qq_28057577
  • 2016年10月05日 16:17
  • 1209

数据结构之 栈(C语言实现)

数据结构之 栈(C语言实现)1.栈的模型栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top)。对栈的基本操作有push(进栈)和pop(出栈),前者相当于插...
  • men_wen
  • men_wen
  • 2017年03月14日 23:23
  • 376

使用python实现数据结构 -- Stack(栈)

栈是一种先进后出的数据结构,在计算机中应用广泛,比如函数的调用就是一个入栈出栈的过程,本文介绍使用python实现一个简单栈的过程。栈的调用过程以及内部数据变化如下: stack.py的定义如下: ...
  • sjhuangx
  • sjhuangx
  • 2016年10月29日 21:44
  • 1374

Stack的三种含义(数据结构、调用栈、内存区域)

原文出处: 阮一峰(@ruanyf) 学习编程的时候,经常会看到stack这个词,它的中文名字叫做”栈”。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不...
  • lanxuezaipiao
  • lanxuezaipiao
  • 2013年12月02日 22:44
  • 2110

数据结构 二:表(list)、栈(stack)、队列(Queue)

一、表(list) 概念:形如A0,A1,A2,…,An-1的一般表,表大小n,大小为0的特殊的表位空表(empty list)。如果元素Ai前有元素Ai-1,则Ai-1为Ai的前驱,Ai为Ai-...
  • Online_you
  • Online_you
  • 2016年10月18日 08:13
  • 484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript 数据结构(1):栈 Stack
举报原因:
原因补充:

(最多只允许输入30个字)