原生JS实现栈结构
1. 前言
栈,是一种遵从后进先出(LIFO,Later-In-First-Out)原则的有序集合。新添加的元素都保存在栈的一端,称作栈顶,另一端叫做栈底。在栈中,新元素都靠近栈顶,旧元素都靠近栈底。
2. 功能说明
- push(value):添加一个新元素到栈顶
- pop():移除栈顶的元素,同时返回该元素
- peek():获取栈顶的元素
- isEmpty():判断栈是否为空。是返回true,否返回fallse
- clear():清空栈里的元素
- size():获取栈里元素的个数
3. 代码实现
首先,先创建一个类表示栈,并且初始化一个空数组,用来保存栈里的元素
class Stack { constructor() { this.items = []; }; }
接着,在这个栈类中实现所需要的功能:
class Stack { constructor() { this.items = []; }; push(value) { this.items.push(value); }; pop() { return this.items.pop(); }; peek() { return this.items[this.items.length - 1]; }; isEmpty() { return this.items.length === 0; }; clear() { return this.items = []; }; size() { return this.items.length; } }
4. 测试
var stack = new Stack(); stack.push(5); stack.push(6); stack.push(7); console.log(stack.pop()); console.log(stack.peek()); console.log(stack.isEmpty()); console.log(stack.size()); console.log(stack.clear()); console.log(stack.size()); console.log(stack);
5.完整代码
完整代码请戳☞☞☞Stack.js
(完)
免责声明
- 本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
- 博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。
- 博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。
- 博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!
posted on 2018-08-12 14:24 难凉热血,码梦为生! 阅读(1147) 评论(0) 收藏 举报
浙公网安备 33010602011771号