栈和队列的问题
来源:互联网 发布:淘宝女童装品牌 编辑:程序博客网 时间:2024/06/06 20:54
栈stack和队列queue: 其实都是普通数组。
栈: 一端封闭,只能从另一端进出的数组
FILO
何时使用: 只要希望总是使用最新的数据时
如何使用:
1. 结尾出入栈:
入栈: arr.push(新值);向数组末尾追加新元素
出栈: var last=arr.pop();
从数组末尾弹出最后一个元素
优点: 每次出入栈操作,不响应其余元素位置
2. 开头出入栈:
入栈: arr.unshift(新值);
在数组开头插入新元素
出栈: var first=arr.shift();
从数组开头位置弹出第一个元素
缺点: 每次出入栈,剩余元素的位置,都会变化
队列: 只能从一端进入,从另一端出 的数组
FIFO
何时使用: 必须按照先来后到的顺序使用数组元素
如何使用:
从结尾入队列:arr.push(新值)
栈: 一端封闭,只能从另一端进出的数组
FILO
何时使用: 只要希望总是使用最新的数据时
如何使用:
1. 结尾出入栈:
入栈: arr.push(新值);向数组末尾追加新元素
出栈: var last=arr.pop();
从数组末尾弹出最后一个元素
优点: 每次出入栈操作,不响应其余元素位置
2. 开头出入栈:
入栈: arr.unshift(新值);
在数组开头插入新元素
出栈: var first=arr.shift();
从数组开头位置弹出第一个元素
缺点: 每次出入栈,剩余元素的位置,都会变化
队列: 只能从一端进入,从另一端出 的数组
FIFO
何时使用: 必须按照先来后到的顺序使用数组元素
如何使用:
从结尾入队列:arr.push(新值)
从开头出队列:var first=arr.shift();
eg:
栈
var bus=[];
for(var i=1;i<=5;i++){
bus.push("乘客"+i);
alert("乘客"+i+" 上车");
console.log(String(bus));
}
while(bus.length>0){
var last=bus.pop();
alert(last+" 下车");
console.log(String(bus));
}
/*队列*/
var 肾s=5;
var queue=[];
for(var i=1;i<=5;i++){
queue.push("顾客"+i);
alert("顾客"+i+" 进入队列");
console.log(String(queue));
}
queue.push("你");
while(6s>0){
var first=queue.shift();
alert(first+"抢购成功");
6s--;
alert("剩余"+6s+"部");
console.log(String(queue));
}
console.log(String(queue)+"没抢上");
0 0
- 栈和队列的问题
- 栈和队列的问题
- 栈和队列的应用:迷宫问题
- 栈和队列相关问题
- 球钟问题(栈和队列的应用)
- 栈和队列的底层实现及迷宫问题
- 球钟问题的解决--栈和队列
- 球钟问题的解决--栈和队列
- 球钟问题的解决--栈和队列
- 栈和队列的
- 栈和队列_迷宫问题_队列
- 数据结构:栈和队列-迷宫问题求解
- 解决迷宫问题, 栈和队列
- 用栈和队列求解迷宫问题
- YTU.2244: 背包问题(栈和队列)
- 栈和队列--队列
- 【栈和队列】队列
- 数据结构和算法设计(迷宫求解问题的栈和队列的实现)
- jmeter 测试Java程序
- Android Studio Git .gitignore规则不生效的原因
- 绘制位图的步骤
- SYS_CONTEXT函数,获取当前连接信息
- leetcode 152. Maximum Product Subarray
- 栈和队列的问题
- RecyclerView的使用(4)之下拉刷新和上拉加载
- cocos2dx android 程序启动黑屏相关
- 幸运的关键(网易公开课视频笔记)
- MD5 算法
- 跟随手机移动的View
- eclipse中怎样运行带命令行参数的java程序
- 特殊的日子
- 理解前缀++ 后缀++