數據的邏輯結構:
數據的邏輯結構指數據元素之間的邏輯關系(和實現無關)。
分類1:線性結構和非線性結構
線性結構:
有且隻有一個開始結點和一個終端結點,并且所有結點都最多隻有一個直接前驅和一個直接後繼。
線性表就是一個典型的線性結構,它有四個基本特征:
生活案例:冰糖葫蘆、 排隊上地鐵
相對應于線性結構,非線性結構的邏輯特征是一個節點元素可能對應多個直接前驅和多個直接後繼。
常見的非線性結構有:樹(二叉樹等),圖(網等)。
樹:
生活案例:單位組織架構、族譜
技術案例:文件系統。
圖:
生活案例:交通線路圖,地鐵圖
分類2:集合結構 線性結構 樹狀結構 網絡結構
邏輯結構有四種基本類型:集合結構、線性結構、樹狀結構和網絡結構。
表和樹是最常用的兩種高效數據結構,許多高效的算法能夠用這兩種數據結構來設計實現。
集合結構:
就是數學中所學習的集合。集合中的元素有三個特征:
該結構的數據元素間的關系是“屬于同一個集合”,别無其它關系。
因為集合中元素關系很弱,數據結構中不對該結構進行研究
線性結構:
數據結構中線性結構指的是數據元素之間存在着“一對一”的線性關系的數據結構。
樹狀結構:除了一個數據元素(元素 01)以外每個數據元素有且僅有一個直接前驅元素,但是可以有多個直接後續元素。
特點是數據元素之間是 1 對 多的聯系
網絡結構:
每個數據元素可以有多個直接前驅元素,也可以有多個直接後續元素。特點是數據元素之間是多對 多 的聯系
問題:1個班的學生是什麼邏輯結構呢?
數據的存儲結構
數據的存儲結構主要包括數據元素本身的存儲以及數據元素之間關系表示,是數據的邏輯結構在計算機中的表示。
常見的存儲結構有順序存儲,鍊式存儲,索引存儲,以及散列存儲。
順序存儲結構:
把邏輯上相鄰的節點存儲在物理位置上相鄰的存儲單元中,節點之間的邏輯關系由存儲單元的鄰接關系來體現。
由此得到的存儲結構為順序存儲結構,通常順序存儲結構是借助于計算機程序設計語言(例如C/C )的數組來描述的。
(數據元素的存儲對應于一塊連續的存儲空間,數據元素之間的前驅和後續關系通過數據元素,在存儲器中的相對位置來反映)
優點:
缺點:
鍊式存儲結構:
數據元素的存儲對應的是不連續的存儲空間,每個存儲節點對應一個需要存儲的數據元素。
每個結點是由數據域和指針域組成。元素之間的邏輯關系通過存儲節點之間的鍊接關系反映出來。
邏輯上相鄰的節點物理上不必相鄰。
缺點:
優點:
索引存儲結構:
除建立存儲結點信息外,還建立附加的索引表來标識結點的地址。
比如圖書、字典的目錄
散列存儲結構:
根據結點的關鍵字直接計算出該結點的存儲地址 HashSet HashMap
一種神奇的結構,添加、查詢速度快。
舉例:
線性表的邏輯結構如圖所示:
線性表邏輯結構對應的順序存儲結構為順序表,對應的鍊式存儲結構為鍊表。
順序表
鍊表
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!