深圳市伙伴行网络科技有限公司(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 32 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- 描述一下队列与栈的区别,并用JavaScript描述相关操作
首先要先了解一下什么是队列和栈
队列的基本概念
队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出!
堆栈的基本概念
堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出!
区别:
1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2.应用场景不同;常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。
3.顺序栈能够实现多栈空间共享,而顺序队列不能。
JavaScript实现
在面向对象的程序设计里,一般都提供了实现队列(queue)和堆栈(stack)的方法, 在 JavaScript 中,可以使用数组及其相关操作来模拟栈操作。,来实现队列和堆栈的功能,看下面的相关介绍.
看一下它们的性质,这种性质决定了它们的使用场合
队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出!
堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出!
代码如下
var a=new Array();
a.unshift(1);
a.unshift(2);
a.unshift(3);
a.unshift(4);
console.log("先进先出")
a.pop()
var a=new Array();
a.push(1);
a.push(2);
a.push(3);
a.push(4);
console.log("后进先出")
a.pop()