AS3中的实现队列(先进先出表)
S3中的队列怎么实现?
答案如下:
队列(Queue)又称先进先出表(First In First Out),即先加入队列的元素删除时先离开队列,加入元素的一头叫“队头”,删除元素的一头叫“队尾”。
基于队列的基本特性,在As3中可以用Array类来实现:
加入队列:Array.push(object);
离开队列:Array.shift();
- 代码:
- // 新建队列
- var Queue:Array = new Array();
- // 加入队列
- Queue.push("a1");
- Queue.push("a2");
- Queue.push("a3");
- Queue.push("a4");
- Queue.push("a5");
- // 打印队列
- trace(Queue); // 打印结果:a1,a2,a3,a4,a5
- // 离开队列
- Queue.shift();
- // 打印队列
- trace(Queue); // 打印结果:a2,a3,a4,a5。先加入的元素”a1“先离开队列
以上是最简单的队列实现
既然说到了“队列”,就顺便把和队列概念相似的“栈”一起说了吧。
栈(Stack):是一种和队列类似的另外一种特殊的线性表,栈又称为后进先出表(Last In First Out),即后加入表的元素,先被删除。插入、删除的一端称为“栈顶”,另外一端称为“栈底”
栈也可以用Array类来实现:
进栈:Array.push(object);
出栈:Array.pop();
- // 新建栈
- var Stack:Array = new Array();
- // 入栈
- Stack.push("a1");
- Stack.push("a2");
- Stack.push("a3");
- Stack.push("a4");
- Stack.push("a5");
- // 打印栈
- trace(Stack); // 打印结果:a1,a2,a3,a4,a5
- // 出栈
- Stack.pop();
- // 打印栈
trace(Stack); // 打印结果:a1,a2,a3,a4。后进栈的元素”a5“先出栈