演算法常見資料結構

2021-09-02 05:22:24 字數 1046 閱讀 1306

array:陣列最簡單而且應用最廣泛的資料結構之一.

特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生(同質資料結構),元素可以通過下標直接訪問

linkedlist:鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.

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

stack:棧,和佇列相似,乙個帶有資料儲存特性的資料結構;

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

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

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

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

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

doubly-linked-list:雙向鍊錶,

特性:每個元素都是乙個物件,每個物件有乙個關鍵字key和兩個指標(next和prev);

queue:佇列

特性:先進先出(fifo),併發中使用,可以安全將物件從乙個任務傳給另乙個任務.

set:集合

特性:儲存不重複元素;

map:字典

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

graph:圖

特性:通常使用鄰接矩陣和鄰接表標識,前者易實現但是對於稀疏矩陣會浪費較多空間,後者使用鍊錶的方式儲存資訊但是對於圖搜尋時間複雜度較高;

常見資料結構

陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...

常見資料結構對比

最近看一本講程式設計藝術的書,裡面提了個問題 常見資料結構有哪些?以前都是用到什麼資料結構,去查相應資料,一直沒仔細想過這個問題,一時心血來潮,決定做個 總結下幾種資料結構的特點。如果哪位大神發現了錯誤,請通知小弟一聲,小弟馬上修改,謝謝。名稱 描述隨機訪問時間複雜度 特點優點 缺點陣列 資料型別的...

常見資料結構 列表

常見資料結構 列表 列表 l1 10,20,abc python print l1 10,20,abc python 切片標記法 print l1 0 print l1 1 3 小於3 print l1 2 負索引 print l1 1 10 20,abc abcpython len l1 4l2 ...