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