作者:夜幕下的猫眼_398 | 来源:互联网 | 2023-10-10 12:50
队列与栈为受限列表,队列为先入先出型列表,而栈为先入后出型列表,有关列表的实现可以查看?http:my.oschina.netu2011113blog514713?。???????
队列与栈为受限列表,队列为先入先出型列表,而栈为先入后出型列表,有关列表的实现可以查看 http://my.oschina.net/u/2011113/blog/514713 。
结构图为
Queue实现了IQueue接口,其代码如下所示:
package tunie.struct.group
{
/**
* Tunie
* Oct 9, 2015 3:09:59 PM
* Queue主要功能如下
*
队列
*/
public class Queue extends Group implements IGroup, IQueue
{
protected var _list:IList;
public function Queue()
{
_list = new ArrayList();
}
public function inQueue(value:*):void
{
_list.add(value);
}
public function outQueue():*
{
return _list.removeAt(0);
}
public function frontQueue():*
{
return _list.obtain(0);
}
public function obtain(index:int):*
{
return _list.obtain(index);
}
override public function clear():void
{
_list.clear();
}
override public function contain(value:*):Boolean
{
return _list.contain(value);
}
override public function get isEmpty():Boolean
{
return _list.isEmpty;
}
override public function get size():int
{
return _list.size;
}
}
}
其接口定义如下:
package tunie.struct.group
{
/**
* Tunie
* Oct 9, 2015 2:51:37 PM
* IQueue主要功能如下
*
队列
*/
public interface IQueue extends IGroup
{
/**
* 入队(队尾入),队发生变化
* @param value
*/
function inQueue(value:*):void;
/**
* 出队(队头出),队发生变化
* @return
*/
function outQueue():*;
/**
* 读队头,队不发生变化
* @return
*/
function frontQueue():*;
/**
* 根据队列索引取得值
* @param index
* @return
*/
function obtain(index:int):*;
}
}
再贴出IStack的定义
package tunie.struct.group
{
/**
* Tunie
* Oct 9, 2015 3:13:32 PM
* IStack主要功能如下
*
栈
*/
public interface IStack extends IGroup
{
/**
* 入栈,栈发生变化
* @param value
*/
function push(value:*):void;
/**
* 出栈,栈发生变化
* @return
*/
function pop():*;
/**
* 根据队列索引取得值
* @param index
* @return
*/
function obtain(index:int):*;
}
}
实现跟Queue基本一样,就不贴出代码了。
受限列表 队列与栈