⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linkedqueue.as

📁 一个2D基于verlet的Flash物理引擎。它用AS3编写而成。Fisix的目标是应用到游戏等计算量很大的实时应用中。尽管flash比c/c++要慢,很棒的物理引擎
💻 AS
字号:
/** * DATA STRUCTURES FOR GAME PROGRAMMERS * Copyright (c) 2007 Michael Baczynski, http://www.polygonal.de * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */package de.polygonal.ds{	/**	 * A queue is a FIFO structure (First In, First Out).	 */	public class LinkedQueue implements Collection	{		private var _list:SLinkedList;				/**		 * Initializes an empty linked queue.		 * You can pass an existing singly linked list		 * to provide queue-like access.		 * 		 * @param list An existing list to use as a queue.		 */		public function LinkedQueue(list:SLinkedList = null)		{			if (list == null)				_list = new SLinkedList();			else				_list = list;		}				/**		 * The total number of items in the queue.		 */		public function get size():int		{			return _list.size;		}				/**		 * Indicates the front item.		 * 		 * @return The front item or null if the		 *         queue is empty.		 */		public function peek():*		{			if (_list.size > 0)				return _list.head.data;			return null;		}				/**		 * Indicates the most recently added item.		 * 		 * @return The last item in the queue or		 *         null if the queue is empty.		 */		public function back():*		{			if (_list.size > 0)				return _list.tail.data;			return null;		}				/**		 * Clears all elements.		 */		public function clear():void		{			_list.clear();		}				/**		 * Enqueues some data.		 * 		 * @param obj The data.		 */		public function enqueue(obj:*):void		{			_list.append(obj);		}				/**		 * Dequeues the front item.		 */		/**		 * Dequeues and returns the front item.		 * 		 * @return The front item or null if the queue is empty.		 */		public function dequeue():*		{			if (_list.size > 0)			{				var front:* = _list.head.data;				_list.removeHead();				return front;			}			return null;		}				/**		 * Returns a string representing the current object.		 */		public function toString():String		{			return "[LinkedQueue > " + _list + "]";		}				/**		 * Prints out all elements in the queue (for debug/demo purposes).		 */		public function dump():String		{			return "LinkedQueue:\n" + _list.dump();		}
				/**		 * Checks if a given item exists.		 * 		 * @return True if the specified item is found, otherwise false.		 */
		public function contains(obj:*):Boolean
		{			return _list.contains(obj);		}
				/**		 * Creates an iterator object for traversing the queue.		 * 		 * @return An iterator object.		 */
		public function getIterator():Iterator
		{			return _list.getIterator();		}
				/**		 * Checks if the queue is empty.		 */
		public function isEmpty():Boolean
		{				return _list.size == 0;		}		
		/**		 * Copies the queue's items into an array.		 */
		public function toArray():Array
		{			return _list.toArray();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -