【探讨】栈和队列

本文介绍了如何使用JavaScript的Array对象及其方法来模拟栈和队列数据结构,通过具体的代码示例展示了栈(LIFO)和队列(FIFO)的操作过程,为请求管理等应用场景提供了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自阿里巴巴团队

提起这两个名词,大家应该非常的熟悉,所谓的栈:是一种限制了插入和删除数据项操作的数据结构。栈又叫做后进先出(LIFO)结构。而队列:是对元素的插入和删除操作具有限制的数据结构的一员。队列又叫做先进先出(FIFO)结构。利用这两个,我们就可以做到请求管理了,当然要真正实现请求管理,其实还是有蛮多的工作要去做。这里提供一点思路。下面讲的虽然很简单,但是会很有用
       在JavaScript中我们可以利用Array对象以及内置的一些方法就可以模拟栈和队列的效果了。细数Array对象的方法其实还是很多,常用的有push,pop,join,concat,slice,shift,unshift,sort,splice等等。要模拟栈,只需用到push和pop两个方法,而要模拟队列,也只需要push和shift两个方法。

  1. /************栈***************/
  2. var stack = new Array();//定义一个空栈
  3. stack.push("a1");
  4. stack.push("a2");
  5. stack.push("a3");
  6. alert(stack.toString());//output a1,a2,a3
  7. var sItem = stack.pop();
  8. alert(sItem);//output a3
  9. alert(stack.toString());//output a1,a2
  10.  
  11. /************队列****************/
  12. var enqueue = new Array();//定义一个空的队列
  13. enqueue.push("b1");
  14. enqueue.push("b2");
  15. enqueue.push("b3");
  16. alert(enqueue.toString());//ouput b1,b2,b3
  17. var qItem = enqueue.shift();
  18. alert(qItem);//output b1
  19. alert(enqueue.toString());//output b2,b3

要真正的实现请求管理,其中充斥着逻辑性和技巧性,剩下的有待完善中,也同时期望大家一起来探讨和分享你是如何做到请求管理的。

转载于:https://www.cnblogs.com/yuzhongwusan/archive/2008/11/27/1342397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值