一、常見數據結構
1、Array 數組
最簡單且應用最廣泛的數據結構之一
特性:使用連續的內存來存儲,數組中的所有元素必須是相同的類型或類型的衍生(同質數據結構),元素可以通過下標直接訪問。
2、LinkedList 鏈表
線性表的一種,最基本、最簡單,也是最常用的數據結構。
特性:元素之間的關系是一對一的關系(除了第一個和最后一個元素,其它元素都是首位相接),順序存儲結構和鏈式存儲結構兩種存儲方式。
3、double-linked-list 雙向鏈表
特性:每個元素都是一個對象,每個對象有一個關鍵字key和兩個指針(next和prev)。
4、Stack 棧
和隊列相似,一個帶有數據存儲特性的數據結構。
特性:存儲數據時先進后出的,棧只有一個出口,只能從棧頂部增加和移除元素。
5、Heap 堆
一般情況下,堆叫二叉堆,近似完全二叉樹的數據結構。
特性:子節點的鍵值或者索引總是小於它的父節點,每個節點的左右子樹又是一個二叉堆,根節點最大的堆叫最大堆或者大根堆,最小的叫最小堆或者小根堆。
6、list 線性表
由零個或多個數據元素組成的有限序列。
特性:線性表是一個序列,0個元素構成的線性表是空表,第一個元素無先驅,最后一個元素無后繼,有長度,長度是元素的個數,長度有限。
7、queue 隊列
特性:先進先出(FIFO),並發中使用 ,可以安全的將對象從一個任務傳給另一個任務。
8、set 集合
特性:保存不重復元素。
9、map 字典
特性:關聯數組,也被叫做字典或者鍵值對。
10、graph 圖
特性:通常使用臨接矩陣和臨接表表示,前者易實現但是對於稀疏矩陣會浪費較多空間,后者使用鏈表的方式存儲信息但是對於圖搜索時間復雜度較高。