內容會持續更新,有錯誤的地方歡迎指正,謝謝!
1.陣列:需處理的元素個數確定並且需使用下標時可以考慮,不過建議用泛型list
優點:陣列在記憶體中是連續儲存的,索引和修改的速度都非常快
缺點:插入和刪除很慢,長度開闢過長易造成記憶體浪費,長度開闢過短易造成記憶體越界
2.list:list是泛型的,即list
,需處理的元素個數可以不確定,不存在裝箱與拆箱,建議多用;而arraylist:arraylist list1 = new arraylist();
arraylist的元素屬於 object 型別存在裝箱與拆箱,很損耗效能。
list的底層資料結構就是陣列,類似於stl裡的vector
list
list = new
list
();//新增資料
list.add(「abc」);
//修改資料
list[0] = 「def」;
//移除資料
list.removeat(0);
//錯誤操作,因為資料的型別不是string
list.add(123);
3.字典dictionary:底層是雜湊表,是鍵值對容器,用於處理key/value鍵值對;而hashtable:hashtable openwith = new hashtable();
中key/value鍵值對均為object型別,所以hashtable存在裝箱和拆箱。而dictionary是泛型的,不存在裝箱和拆箱。dictionary相對於hashtable,類似於list和arraylist的關係。
dictionary thedic = new dictionary(); mydic.add("abc", 123);
4.鍊錶:常用來維護、管理那些需要頻繁產生、消除的遊戲物件,比如:消除類遊戲中需要消除的物件。
5.樹:1.場景管理中的四叉樹;2.遊戲ui裡的選單一般是分級的,乙個主頁面可以衍生出很多的子頁面的時候,使用樹來管理這些選單是很合適的做法。
6.圖:a*尋路演算法、dfs、bfs
7.棧:使用遞迴就間接地使用了棧
8.佇列:遊戲中做任務:哪個任務先接到就把那個任務排在前面,即先進先出;還有優先順序佇列,想哪個任務報酬多的就先做哪個任務。
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
資料結構中常用演算法
排序常用的演算法有 插入演算法 直接插入演算法 折半插入演算法 希爾演算法 選擇演算法 簡單選擇演算法 堆排序演算法 快速演算法 氣泡排序 快速排序演算法 以下程式給出了各種演算法的實現,其介面為void sort int array,int len 每個檔案實現乙個演算法,最後和main.c檔案編...