[quote]
描述:'as3遊戲資料結構』是乙個包含了許多常見的用於flash遊戲的程式設計和應用開發的資料結構包。我做該項目的起因是因為我想要乙個統一庫來用於我的遊戲。
collections
幾乎所有的類都實現了collection 介面,它定義了以下幾種方法:
contains(obj:*), 檢測元素是否存在.clear(), 清空所有的元素.
getiterator(), 獲得乙個包含所有元素的iterator物件
toarray(), 獲得乙個包含所有元素的array物件
使用 iterators
每乙個實現了collection 介面的類都能通過getiterator()方法來獲得乙個iterator 物件,一但你有乙個iterator物件,你就能通過以下等例子來訪問資料。
var myitr:iterator = getiterator();
var value:*;
//read all values
while (myitr.hasnext())
//write new value
myitr.start();
while (myitr.hasnext())
//the same with a for loop
for (myitr.start(); myitr.hasnext(); myitr.next())
請記住,iterator是基本乙個迭代器,一些類還提供更複雜的處理,比如鍊錶或樹。這是必要的,因為你可以用在更多的迭代方向(來回,背部,上,下.. ) 。(ps。遊戲中的人物控制)。你獲得那些iterator不成功或者呼叫乙個特殊的方法。(這句不懂怎麼翻譯)
var listitr:listiterator = mylinkedlist.getiterator() as listiterator;
var listitr:listiterator = mylinkedlist.getlistiterator();
多維陣列
該庫包含乙個二維陣列和三維陣列類,他們都是執行單一線性陣列,而不是巢狀的陣列。這是最快的方法在flash模擬多維陣列和優於巢狀陣列方法,因為多個陣列查詢是比較慢的乙個查詢加上乙個簡單的算術表示式(這你也可以經常precompute在外環).該類最常用於2d或者3d地圖。
佇列佇列(queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。
(1)允許刪除的一端稱為隊頭(front)。 (2)允許插入的一端稱為隊尾(rear)。 (3)當佇列中沒有元素時稱為空佇列。 (4)佇列亦稱作先進先出(first in first out)的線性表,簡稱為fifo表。佇列的修改是依先進先出的原則進行的。新來的成員總是加入隊尾(即不允許"加塞"),每次離開的成員總是佇列頭上的(不允許中途離隊),即當前"最老的"成員離隊。
棧棧(stack)是限制僅在表的一端進行插入和刪除運算的線性表。 (1)通常稱插入、刪除的這一端為棧頂(top),另一端稱為棧底(bottom)。 (2)當表中沒有元素時稱為空棧。 (3)棧為後進先出(last in first out)的線性表,簡稱為lifo表。棧的修改是按後進先出的原則進行。每次刪除(退棧)的總是當前棧中"最新"的元素,即最後插入(進棧)的元素,而最先插入的是被放在棧的底部,要到最後才能刪除。
樹樹形結構是一類重要的非線性結構。樹形結構是結點之間有分支,並具有層次關係的結構。它非常類似於自然界中的樹。 樹結構在客觀世界中是大量存在的,例如家譜、行政組織機構都可用樹形象地表示。 樹在計算機領域中也有著廣泛的應用,例如在編譯程式中,用樹來表示源程式的語法結構;在資料庫系統中,可用樹來組織資訊;在分析演算法的行為時,可用樹來描述其執行過程。
二叉樹二叉樹是樹形結構的乙個重要型別。許多實際問題抽象出來的資料結構往往是二叉樹的形式,即使是一般的樹也能簡單地轉換為二叉樹,而且二叉樹的儲存結構及其演算法都較為簡單,因此二叉樹顯得特別重要。
二叉排序樹和雜湊表
二叉排序樹和雜湊表用於查詢元素,其內部結構不同,通過不同的實現使其查詢應用不相同。
單鏈表鏈結方式儲存的線性表簡稱為鍊錶(linked list)。 鍊錶的具體儲存表示為: ① 用一組任意的儲存單元來存放線性表的結點(這組儲存單元既可以是連續的,也可以是不連續的) ② 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存每個結點值的同時,還必須儲存指示其後繼結點的位址(或位置)資訊(稱為指標(pointer)或鏈(link)) 注意: 鏈式儲存是最常用的儲存方式之一,它不僅可用來表示線性表,而且可用來表示各種非線性的資料結構。
鍊錶的結點結構 ┌──┬──┐ │data│next│ └──┴──┘ data域--存放結點值的資料域 next域--存放結點的直接後繼的位址(位置)的指標域(鏈域) 注意: ①鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一起的。 ②每個結點只有乙個鏈域的鍊錶稱為單鏈表(single linked list)。
堆和堆佇列
堆:堆是乙個特殊的二叉樹,它的每乙個節點都比子節點大。
堆佇列:乙個基於優先順序堆的無界優先順序佇列。優先順序佇列的元素按照其自然順序進行排序,或者根據構造佇列時提供的 comparator 進行排序,具體取決於所使用的構造方法。優先順序佇列不允許使用 null 元素。依靠自然順序的優先順序佇列還不允許插入不可比較的物件。
圖圖(graph)是一種複雜的非線性結構。
位向量位向量是按位儲存的向量.
[/quote]
資料結構 簡介
資料元素 是組成資料有一定意義的基本單位,比如乙個人的基本資訊包括姓名 性別 年齡等 資料物件 是性質相同的資料元素的集合,比如正整數資料物件n 資料結構 是資料的組織形式,即資料元素之間存在的一種或幾種特定關係 資料型別 是用來刻畫一組性質相同的資料及其上的操作。可以分為原子型別和結構型別。抽象資...
資料結構簡介
資料結構 是指相互之間存在一種或多種特定關係的 資料元素 的集合。聽起來是不是很抽象,簡單理解 資料結構就是描述物件間邏輯關係的學科。比如 佇列就是一種先進先出的邏輯結構,棧是一種先進後出的邏輯結構,家譜是一種樹形的邏輯結構!初學資料結構的時候很不理解為什麼有 棧 這個東西 佇列很容易理解 無論購物...
資料結構簡介
程式設計 資料結構 演算法。集合結構 資料間沒有對應關係 集 線性結構 資料間一對一的關係 表 樹形結構 資料間一對多的關係 樹 圖形結構 資料間多對多的關係 圖 順序結構 資料在儲存空間連續儲存 鏈式結構 資料在儲存空間不連續儲存 每一種具體資料儲存可以是兩種結構的組合,如陣列為順序線性儲存 鍊錶...