【數據結構】數據結構三要素

數據結構三要素

數據結構的三要素包括數據邏輯結構、數據存儲結構和數據的運算。

數據邏輯結構

數據的邏輯結構是指數據元素之間的邏輯關係,即從邏輯關係上描述數據。它與數據的具體存儲形式無關,是獨立於計算機的。數據邏輯結構通常分爲線性結構和非線性結構。典型的數據結構與其邏輯結構的對應關係如下:
在這裏插入圖片描述

對於線性表、集合、樹、圖這四種典型的數據結構,他們分別有以下特點:

  • 集合結構:數據元素之間只存在 “同屬於一個集合”的關係。
  • 線性結構:數據元素之間只存在“一對一”的關係。
  • 樹形結構:數據元素之間存在“一對多”的關係。
  • 圖狀結構或網狀結構:數據元素之間存在“多對多”的關係。

數據存儲結構

數據的存儲結構指的是數據結構在計算機中的表示,也稱爲物理結構,又稱映像。它包括數據元素的表示和關係的表示。數據存儲結構依賴於計算機語言,它是用計算機語言實現的邏輯結構。數據的線性存儲結構主要有:順序存儲、鏈式存儲、索引存儲、散列存儲。

  1. 順序存儲:把邏輯上相鄰的數據元素存儲在物理位置也相鄰的存儲單元裏,元素之間的關係由存儲單元之間的位置關係,即相鄰關係來體現。如順序表。
    • 優點:容易實現隨機存取,每個元素佔用最少的存儲空間。
    • 缺點:只能使用相鄰的一整塊存儲空間,容易產生較多的外部內存碎片。
  2. 鏈式存儲:使用表示元素存儲地址的指針來表示元素之間的邏輯關係,此時不要求邏輯上相鄰的數據元素在物理位置上也相鄰。如單鏈表。
    • 優點:不會出現碎片內存,能充分利用存儲單元。
    • 缺點:每個元素由於存儲指針而佔用額外的存儲空間,且只能通過遍歷實現順序存取。
  3. 索引存儲:在存儲數據元素的同時,建立一個附加的索引表。索引表中的每一項稱爲索引項項,其形式通常爲(關鍵字,地址)。
    • 優點:檢索速度快。
    • 缺點:附加的索引表會佔用額外的存儲空間。在添加或者刪除數據元素時,需要同步修改索引表,因此會花費額外的時間。
  4. 散列存儲:根據元素的關鍵字以某種方式計算出該元素的存儲地址,又稱爲 hash 存儲。如哈希表。
    • 優點:檢索、添加、刪除的操作速度都很快。
    • 如果散列函數(或者 hash 函數)設計不好的話,可能會出現 hash 衝突,解決衝突又會增加時間和空間開銷。

而數據的非線性存儲結構主要有:樹形存儲、圖形存儲。

數據的運算

數據的運算主要體現爲運算的定義,以及運算的實現。

運算的定義是針對數據邏輯結構的,它描述了運算所能實現的功能。

運算的實現是針對數據存儲結構的,它描述了運算的具體操作過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章