栈是一种遵从 后进先出(LIFO)原则的有序集合。(例子:一摞书或是一叠盘子)

新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。

一、栈的创建

function Stack() {
       var items = [];
       this.push = function(element){
              items.push(element);               // 向栈顶,也就是栈的末尾添加元素
       };


       this.pop = function(){
             return items.pop();                     // 向栈顶,也就是栈的末尾移除元素
       };


       this.peek = function(){
             return items[items.length-1];         // 获取栈顶的元素
       };


      this.isEmpty = function(){
            return items.length == 0;                // 判断内部数组的长度是否为0
      };

 

      this.size = function(){
            return items.length;                  // 返回栈的长度
      };


      this.clear = function(){
            items = [];                                     //  清空栈
      };


       this.print = function(){
             console.log(items.toString());        //  把栈里的元素都输出到控制台
       };
}

 

二、使用栈

var stack = new Stack();

console.log(stack.isEmpty());          //输出为true

stack.push(5);

stack.push(8);

console.log(stack.peek());               //输出8

console.log(stack.size());                 //输出3

console.log(stack.isEmpty());          //输出false

stack.pop();

console.log(stack.size());                 //输出1

 

 

posted @ 2017-12-05 21:25  shenmq  阅读(369)  评论(0编辑  收藏  举报