常見資料結構對比

2021-07-13 06:02:25 字數 939 閱讀 1554

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

描述隨機訪問時間複雜度

特點優點

缺點陣列

資料型別的元素按一定順序排列的集合

o(1)

連續儲存

訪問快大小固定

儲存效率低

向量其實向量是乙個動態陣列

o(1)

連續儲存

動態分配陣列大小

增長過快的時候比較耗資源

鍊錶由一系列稱為表的節點的物件組成

o(n)

不連續、大小不固定

中間任意位置新增刪除元素的都非常的快

空間和時間額外耗費較大

棧只能在一端進行插入和刪除操作

o(n)

lifo

提供後進先出的訪問方式

訪問慢佇列只能一端進一端出

o(n)

fifo

提供後進後出的訪問方式

訪問慢堆堆是一種特殊的樹形資料結構,每個結點都有乙個值

o(n lg n)

可以被視為一科完全二叉樹結構。它的特點是父節點的值大於(小於)兩個子節點的值(分別稱為大頂堆和小頂堆)

插入,刪除塊,對最大資料的項訪問很快

對其他資料項訪問很慢

雜湊表根據關鍵碼值而直接進行訪問的資料結構

o(1)

鍵值對儲存,訪問快,元素不能重複

訪問快空間消耗大

二叉樹每個父節點最多只能有兩個子節點。每個父節點的子節點都是從左到右的樹

o(logn)

高效建立和更新

刪除節點比較麻煩

圖是一種複雜的非線性資料結構

多項式直觀表示模型

慢、演算法複雜

常見資料結構

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

演算法常見資料結構

array 陣列最簡單而且應用最廣泛的資料結構之一.特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生 同質資料結構 元素可以通過下標直接訪問 linkedlist 鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.特性 元素之間的關係是一對一的關係 除了第乙個和最後...

常見資料結構 列表

常見資料結構 列表 列表 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 ...