在JavaScript中为数组封装了大量的方法,比如:concat,pop,push,unshift,shift,forEach等,下面我将使用JavaScript提供的这些方法,实现队列和栈的操作。栈栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在 ...
在JavaScript中为数组封装了大量的方法,比如:concat,pop,push,unshift,shift,forEach等,下面我将使用JavaScript提供的这些方法,实现队列和栈的操作。
栈
栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。
我们先创建一个表示栈的类,类名为Stock,其实这就是一个函数,在这个函数中有一个数组,这个数组用于保存栈中的数据,除了需要一个保存数据的数组之外,还需要一些对这个数组进行操作的方法,方法介绍如下:
isEmpty:判断栈是否为空
push:添加一个或者多个新的数据到栈顶
pop:移除栈顶的数据,并返回被移除的数据
size:得到栈中数据的个数
clear:清除栈中的所有数据
peek:得到栈顶的数据,但不移除
Stock类具体实现如下:
/** * 栈类 * @constructor */function Stock() { //保存栈中的数据 this.items = [];}/** * 判断是否栈中数据为空 */Stock.prototype.isEmpty = function(){ return this.items.length === 0;};/** * 向栈顶添加一个或多个新数据 * @param elements 要添加的新数据 */Stock.prototype.push = function(elements){ this.items.push(elements);};/** * 移除栈顶的数据,并返回移除的数据 */Stock.prototype.pop = function(){ return this.items.pop();};/** * 得到栈中数据的个数 * @returns {Number} */Stock.prototype.size = function(){ return this.items.length;};/** * 得到栈顶的数据,但不移除数据 */Stock.prototype.peek = function(){ return this.items[this.items.length - 1];};
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:JavaScript数据结构,队列和栈
关键词:JavaScript
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。