前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS数据结构与算法-栈

JS数据结构与算法-栈

作者头像
Ewall
发布2018-09-04 15:40:40
6840
发布2018-09-04 15:40:40
举报
文章被收录于专栏:vue学习vue学习
  1. 定义

栈是一种遵从后进先出(LIFO)原则的有序集合。

在栈里,新元素都靠近栈顶,旧元素都接近栈低。比如叠书本:

来自《javascript数据结构与算法》

  1. 栈的创建
  • 先声明一个类用来表示栈
代码语言:javascript
复制
function Stack() {
//各种属性和方法的声明
}
  • 实现push方法
代码语言:javascript
复制
//push() 方法将一个或多个元素添加到数组的末尾(栈顶),并返回数组的新长度
this.push = function(element) {
  items.push(element);
};
  • 实现pop方法
代码语言:javascript
复制
//pop()方法移除栈顶的元素,同时返回被移除的元素。
this.pop = function() {
  return items.pop();
};
  • 实现peek方法 返回栈顶的元素(数组末尾元素),不对栈做任何修改,不会移除栈顶的元素,仅仅返回它。
代码语言:javascript
复制
this.peek = function(){
  return items[items.length-1];
}
  • isEmpty()方法。如果栈为空的话,返回true,否则就返回false
代码语言:javascript
复制
this.isEmpty = function() {
  return items.length === 0;
}
  • size()方法。返回栈里的元素个数。
代码语言:javascript
复制
this.size= function() {
  return items.length;
}
  • clear()方法。移除栈里的所有元素。
代码语言:javascript
复制
this.clear = function() {
  items = [];
}

这样我们就完成了一个栈的创建。全部代码:

代码语言:javascript
复制
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
  };

  this.size = function() {
    return items.length;
  };
  
  this.clear = function() {
    items = [];
  };

  this.print = function() {
    console.log(items);
  };
}

var stack = new Stack();
console.log(stack.isEmpty());
stack.push(1);
stack.push(2);
stack.print(); //"[1,2]"

参考学习

学习javascript数据结构与算法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.09.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档