js数据结构之栈和队列
来源:互联网 发布:苗阜精神状态知乎 编辑:程序博客网 时间:2024/05/29 13:50
栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈末尾,称作栈顶,另一端称作栈底。在栈里,新元素都靠近栈顶,旧元素就接近栈底。
队列是遵循先进先出(FIFO)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。
//创建一个类来表示栈function Stack(){ var items=[];//保存栈里的元素 this.push=function(e){//添加一个元素到栈顶 items.push(e); } this.pop=function(e){//弹出并返回栈顶元素 return items.pop(); } this.isEmpty=function(){//如果栈里没有任何元素就返回true,否则返回false return items.length==0; } this.peek=function(){//返回栈顶元素 return items[items.length-1]; } this.mylength=function(){//返回栈里的元素个数 return items.length; } this.clear=function(){//清除栈里的元素 items=[]; } this.print=function(){//打印栈里的元素 console.log(items); }}var stack=new Stack();//实例化一个对象stack.push(4);stack.push('a');stack.push('cde');stack.print();//[4,'a','cde']console.log(stack.peek());//cdeconsole.log(stack.mylength());//3while(!stack.isEmpty()){ console.log(stack.pop()); //cde //a //4}stack.push('abc');stack.clear();stack.print();//[]//创建一个类来表示队列function Queue(){ var items=[];//保存队列里的元素 this.enqueue=function(e){//添加一个元素到队列尾部 items.push(e); } this.dequeue=function(){//移除队列的第一项,并返回 return items.shift(); } this.front=function(){//返回队列的第一项 return items[0]; } this.isEmpty=function(){//如果队列中部包含任何元素,返回true,否则返回false return items.length==0; } this.mylength=function(){//返回队列包含的元素个数 return items.length; } this.clear=function(){//清除队列中的元素 items=[]; } this.print=function(){//打印队列中的元素 console.log(items); }}var queue=new Queue();//实例化一个对象queue.enqueue(1);queue.enqueue('a');queue.enqueue('bcd');queue.print();//[1,'a','bcd']console.log(queue.mylength());//3console.log(queue.front());//1while(!queue.isEmpty()){ console.log(queue.dequeue()); //1 //a //bcd}queue.enqueue('a');queue.clear();queue.print();//[]
阅读全文
1 0
- js数据结构之栈和队列
- js数据结构之优先队列和循环队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- 数据结构之栈和队列
- Java正则表达式-基础
- Logrotate操作手册
- web如何制作验证码功能
- 经典设计模式(附实例和详解)
- 刷新组件RENDER(重新渲染)的三种方式详解
- js数据结构之栈和队列
- 面试题17:合并两个排序的链表
- Ie浏览器访问https网站,处理SSL提示的代码
- Android 相机相册调用封装类
- Spring MVC---数据绑定和表单标签
- 【高性能】大型分布式项目笔记
- IDEA中web项目部署
- Android Kotlin学习笔记(二)---环境搭建
- 女性三围--表单只能输入数字和英文输入下的逗号