博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript栈
阅读量:6341 次
发布时间:2019-06-22

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

hot3.png

什么是栈?

栈是一种遵循后进先出(Last in , first out)原则的有序组合。它类似于数组,但是添加和删除元素时有更加灵活的控制。新添加的或者待删除的元素都保存在栈的末尾,即栈顶。另一端就是栈底。譬如,餐厅里的一摞盘子,最上面的盘子是最后放上去的,第一个放上去的盘子被压在最底端。即,新元素都靠近栈顶,旧元素都靠近栈底。在计算机内部,栈被用于在编译器或者内存中保存变量和方法调用。如下创建了一个类来表示栈。

In computer science, a stack or LIFO (last in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: push, which adds an element to the collection, and pop, which removes the last element that was added.

JavaScript如何定义栈?

function Stack() {//各种属性、方法     var items = [];//依然选择数组来保存元素    this.push = function(element){//添加元素到栈顶,这里使用了数组的push方法        items.push(element);    };    this.pop = function(){//移除栈顶元素,并且返回该元素        return items.pop();    };    this.peek = function(){//仅仅返回栈顶元素,类似于查询的功能,不对栈做任何修改        return items[items.length-1];    };    this.isEmpty = function(){//逻辑判断的功能,如果栈里为空,返回true        return items.length == 0;    };    this.size = function(){//返回栈里的元素的个数,即判断内部数组的长度是否为0        return items.length;    };    this.clear = function(){//清空栈的内容        items = [];    };    this.print = function(){        console.log(items.toString());    };    this.toString = function(){        return items.toString();    };}

JavaScript如何使用栈?

那么,就用一下这个栈吧。以下是使用栈的代码。

var stack = new Stack(); console.log(stack.isEmpty()); //outputs true stack.push(5); stack.push(8); console.log(stack.peek()); // outputs 8 stack.push(11); console.log(stack.size()); // outputs 3 console.log(stack.isEmpty()); //outputs false stack.push(15); stack.pop(); stack.pop(); console.log(stack.size()); // outputs 2 stack.print(); // outputs [5, 8]

转载于:https://my.oschina.net/donngchao/blog/526150

你可能感兴趣的文章
10 个 Linux 中方便的 Bash 别名
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
Java中取两位小数
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark...
查看>>
linux磁盘配额
查看>>
NFS文件共享服务器的搭建
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>