數據的邏輯結構linux
數據的邏輯結構指數據元素之間的邏輯哦關係(和實現無關)算法
分類一:線性結構和非線性結構數組
線性結構:有且只有一個開始結點和一個終端節點,而且全部節點都最多隻有一個直接前繼和一個直接後繼。數據結構
線性表就是一個典型的線性結構,它有四個基本特徵:性能
1.集合中必存在惟一的一個「第一個元素」spa
2.集合中必存在的一個「最後的元素」設計
3.除最後元素以外,其餘的數據元素均有惟一一個的「後繼」3d
4.除第一元素以外,其餘的數據元素均有惟一一個的「前驅」指針
相對應線性結構,非線性結構的邏輯特徵是一個節點元素可能對應多個直接前繼和多個直接後繼,常見的有樹(二叉樹等)、圖(網等)blog
樹:例如linux的文件系統等
分類二: 集合結構 線性結構 樹狀結構 網狀結構
邏輯結構有四種基本類型:集合結構、線性結構、樹狀結構和網狀結構
表和樹是最經常使用的兩種高效數據結構,許多高效的算法可以用這兩種數據結構來設計實現
集合結構:三個特徵:1.肯定性2.惟一性3.無序性,該結構的數據元素間的關係是「屬於同一集合」,別無其餘關係。由於集合中元素的關係很弱,數據結構中不對該結構進行研究
線性結構:數據元素之間存在一對一的關係
樹狀結構:除了一個數據元素(元素01)之外每一個數據元素有且僅有一個直接前驅元素,可是能夠有多個直接後繼元素,特色是數據元素之間是1對多的聯繫
網狀結構:每一個數據元素能夠有多個直接前驅元素,也能夠有多個直接後繼元素,特色是數據元素之間是多對多的關係
數據的儲存結構
數據的儲存結構主要包括數據元素自己的儲存以及數據元素之間的關係表示,是數據的邏輯結構在計算機中的表示,常儲存結構有順序儲存,鏈式儲存,索引儲存以及散列儲存
順序儲存結構:一般順序儲存結構是藉助計算機中的數組的概念描述的
優勢:節省儲存空間,由於分配給數據的儲存單元全用存放節點的數據,節點以前的邏輯關係沒有佔用儲存空間
採用這種方法的,可實現對節點的隨機存取,每一個節點對應一個序號,經過該序號能夠計算出來節點的儲存地址
缺點:插入和產出操做須要移動元素,效率低
鏈式儲存結構:數據元素的儲存對應的是不連續的儲存空間,每個儲存節點對應一個須要儲存的數據元素
鏈式儲存結構的特色:
1.每一個節點是由數據域和指針域組成,因此相同空間內假設全存滿的話順序比鏈式儲存更多
2.邏輯上相鄰的節點物理上不相鄰
3.查找刪除靈活(沒必要移動節點,只要改變節點中的額指針)
4.查找結點鏈式儲存要比順序儲存慢
索引儲存結構: 除創建儲存節點信息外,還創建附加的索引來標識節點的地址。
好比:圖書,字典的目錄,目錄是佔空間的,可是這個目錄佔的空間很是小,可以帶給性能的極大的優越。根據索引查找數據
散列儲存結構:
添加和查詢很是快,按照內容查找
總結: