受限列表 隊列與棧

        隊列與棧爲受限列表,隊列爲先入先出型列表,而棧爲先入後出型列表,有關列表的實現能夠查看 http://my.oschina.net/u/2011113/blog/514713 。ide

        結構圖爲
spa

Queue實現了IQueue接口,其代碼以下所示:
.net

package tunie.struct.group
{
	/**
	 * Tunie
	 * Oct 9, 2015 3:09:59 PM
	 * <b>Queue主要功能以下</b>
	 * <li>隊列
	 */
	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;
		}
		
		
	}
}

其接口定義以下:code

package tunie.struct.group
{
	/**
	 * Tunie
	 * Oct 9, 2015 2:51:37 PM
	 * <b>IQueue主要功能以下</b>
	 * <li>隊列
	 */
	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的定義blog

package tunie.struct.group
{
	/**
	 * Tunie
	 * Oct 9, 2015 3:13:32 PM
	 * <b>IStack主要功能以下</b>
	 * <li>棧
	 */
	public interface IStack extends IGroup
	{
		/**
		 * 入棧,棧發生變化
		 * @param value
		 */
		function push(value:*):void;
		/**
		 * 出棧,棧發生變化
		 * @return 
		 */
		function pop():*;
		/**
		* 根據隊列索引取得值 
		* @param index
		* @return 
		*/
		function obtain(index:int):*;
	}
}

實現跟Queue基本同樣,就不貼出代碼了。索引

相關文章
相關標籤/搜索