資料結構是對在計算機記憶體中的資料的一種安排,資料結構包括陣列,鍊錶,棧,二叉樹,雜湊表等等,資料結構和技術與如何處理現實世界資料儲存問題相連,現實世界資料指的是那些描述處於計算機外部的物理實體的資料。今天不展開常見資料結構的原理,僅僅比較他們的優缺點。
資料結構
優點缺點
陣列插入快,如果知道下標,可以非常快的訪問
查詢慢,刪除慢,大小固定
有序陣列
比無序的陣列查詢快
刪除和插入慢,大小固定
棧提供後進先出方式的訪問
訪問其他項很慢
佇列提供先進先出方式的訪問
訪問其他項很慢
鍊錶插入快,刪除快
查詢慢二叉樹
查詢,插入,刪除都快(如果樹保持平衡)
刪除演算法複雜
紅-黑樹
查詢,插入,刪除都快,樹總是平衡的
演算法複雜
2-3-4樹
查詢,插入,刪除都快,樹總是平衡的,類似的樹對磁碟儲存有用
演算法複雜
雜湊表如果關鍵字已知則訪問極快,插入快
堆插入刪除快,對最大資料項的訪問很快
對其他資料項訪問慢
圖對現實世界建模 有些演算法慢且複雜
常見資料結構
陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...
常見資料結構對比
最近看一本講程式設計藝術的書,裡面提了個問題 常見資料結構有哪些?以前都是用到什麼資料結構,去查相應資料,一直沒仔細想過這個問題,一時心血來潮,決定做個 總結下幾種資料結構的特點。如果哪位大神發現了錯誤,請通知小弟一聲,小弟馬上修改,謝謝。名稱 描述隨機訪問時間複雜度 特點優點 缺點陣列 資料型別的...
演算法常見資料結構
array 陣列最簡單而且應用最廣泛的資料結構之一.特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生 同質資料結構 元素可以通過下標直接訪問 linkedlist 鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.特性 元素之間的關係是一對一的關係 除了第乙個和最後...