博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS数据结构与算法-栈
阅读量:6094 次
发布时间:2019-06-20

本文共 1229 字,大约阅读时间需要 4 分钟。

  1. 定义

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

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

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

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

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数据结构与算法

转载地址:http://avwza.baihongyu.com/

你可能感兴趣的文章
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
照猫画虎学gnuplot之折线图
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
Hackerrank - Game Of Rotation 题解
查看>>