天天看點

算法常見資料結構

常見資料結構

Array:數組 最簡單而且應用最廣泛的資料結構之一.

特性 使用連續的記憶體來存儲,數組中的所有元素必須是相同的類型或類型的衍生(同質資料結構),元素可以通過下标直接通路

LinkedList:連結清單,線性表的一種,最基本,最簡單,也最為常用的資料結構.

特性:元素之間的關系是一對一的關系(除了第一個和最後一個元素,其他元素都是首尾相接),順序存儲結構和鍊式存儲結構兩種存儲方式.Ps(形象記憶,請想象鍊條);

Stack:棧,和隊列相似,一個帶有資料存儲特性的資料結構;

特性:存儲資料是先進後出,棧隻有一個出口,隻能從棧頂部增減和移除元素;Ps(請想象試管);

Heap:堆,,一般情況下,堆叫二叉堆,近似完全二叉樹的資料結構.

特性:子節點的鍵值或者索引總是小于它的父節點,每個節點的左右子樹又是一個二叉堆,根節點最大的堆叫最大堆或大根堆,最小的堆叫做最小堆或者小根堆;

list:線性表,由零個或多個資料元素組成的有限序列;

特性:線性表是一個序列,0個元素構成的線性表是空表,第一個元素無先驅,最後一個元素無後繼,其他元素都隻有一個先驅和後繼,有長度,長度是元素個數,長度有限;

doubly-linked-list:雙向連結清單,

特性:每個元素都是一個對象,每個對象有一個關鍵字key和兩個指針(next和prev);

queue:隊列

特性:先進先出(FIFO),并發中使用,可以安全将對象從一個任務傳給另一個任務.

set:集合

特性:儲存不重複元素;

map:字典

特性:關聯數組,也可以叫做字典或者鍵值對

graph:圖

特性:通常使用鄰接矩陣和鄰接表辨別,前者易實作但是對于稀疏矩陣會浪費較多空間,後者使用連結清單的方式存儲資訊但是對于圖搜尋時間複雜度較高;

繼續閱讀