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());
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据结构(Data Structure)——1、栈(Stack)

栈的介绍 栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线形表。   栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入...

数据结构 严蔚敏 栈 stack

  • 2010年12月05日 20:28
  • 4KB
  • 下载

[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列

python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心。但是,如果从一个初学者的角度利用python学习数据结...

Java 数据结构之 Stack(栈)

栈是重要的数据结构,从数据结构角度看,栈也是线性表,其特殊性在栈的基本操作是线性表的子集。Stack作为最基本的数据结构,在JDK代码中,也有它的实现,java.util.Stack类是继承了Vect...
  • FX_SKY
  • FX_SKY
  • 2013年03月08日 15:40
  • 3263

java实现数据结构——栈Stack与队列Queue

栈(Stack)作为一个先进后出(FILO) 的线性结构,只支持在栈顶的插入和弹出。 队列(Queue)作为一个先进先出(FIFO) 的线性结构,支持在队首获取元素,在对尾插入元素。   栈的实...

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

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

【数据结构】栈 Stack

1. 栈的定义

C++_STL_数据结构_stack_栈

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

【数据结构】栈stack

【数据结构 - 栈】 数据结构由"一组存储区"和"相关函数"构成 每一种数据结构代表了这些存储区的管理方法 这些函数提供了这些存储区的使用方法 只有这些函数才能直接使用这些存储区 "栈"是一种数据...

数据结构之栈(附:Stack/Vector源码分析)

1、栈介绍 栈是一种由有序数据项构成的数据结构,其中的数据项插入和删除只能在一端(称为栈顶)进行。 Java栈的实现类在java.util包下的Stack类(java.util.Stack) 我们打开...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript 数据结构(1):栈 Stack
举报原因:
原因补充:

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