1. 程式人生 > >【數據結構】數據結構的概述

【數據結構】數據結構的概述

邏輯關系 安排 線性表 markdown 一個 ava auto nbsp log

一、概述
什麽是數據結構:
數據:由有限的符號(比如,"0"和"1",具有其自己的結構、操作、和相應的語義)組成的元素的集合。
結構:元素之間的關系的集合。
數據結構:信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應,通過這組算法集合可以對數據結構中的數據進行某種操作。它用來反映一個數據的內部構成,即一個數據由那些成分數據構成,以什麽方式構成,呈什麽結構。

數據結構的構成:
數據結構分為邏輯上的數據結構和物理上的數據結構。邏輯上的數據結構反映成分數據之間的邏輯關系即邏輯結構。物理上的數據結構反映成分數據在計算機內部的存儲安排即存儲結構。數據結構是數據存在的形式。

技術分享

MarkDown代碼:

```
    graph TB
    A[數據結構]-->B[邏輯結構]
    A[數據結構]-->C[存儲結構]
    B[邏輯結構]-->D[集合結構]
    B[邏輯結構]-->F[線性結構]
    B[邏輯結構]-->G[樹狀結構]
    B[邏輯結構]-->H[網絡結構]
    C[存儲結構]-->E[順序存儲]
    C[存儲結構]-->I[鏈式存儲]
    C[存儲結構]-->J[索引存儲]
    C[存儲結構]-->K[散列存儲]
  ```

邏輯結構:

⑴集合結構。在集合結構中,數據元素間的關系是“屬於同一個集合”。集合是元素關系極為松散的一種結構。
⑵線性結構。該結構的數據元素之間存在著一對一的關系。
⑶樹型結構。該結構的數據元素之間存在著一對多的關系。
⑷圖形結構。該結構的數據元素之間存在著多對多的關系,圖形結構也稱作網狀結構。

技術分享

存儲結構:

⑴順序存儲結構:把邏輯上相鄰的節點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關系由存儲單元的鄰接關系來體現。由此得到的存儲結構為順序存儲結構。

優點:是節省存儲空間,因為分配給數據的存儲單元全用存放結點的數據,結點之間的邏輯關系沒有占用額外的存儲空間。采用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。但順序存儲方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。 
缺點:插入和刪除操作需要移動元素,效率較低。

⑵鏈式存儲結構:在計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的).

特點:  

1、比順序存儲結構的存儲密度小 (每個節點都由數據域和指針域組成,所以相同空間內假設全存滿的話順序比鏈式存儲更多)。  

2、邏輯上相鄰的節點物理上不必相鄰。  

3、插入、刪除靈活 (不必移動節點,只要改變節點中的指針)。

4、查找結點時鏈式存儲要比順序存儲慢。

5、每個結點是由數據域和指針域組成。 

⑶索引存儲結構:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。

⑷散列存儲結構:根據結點的關鍵字直接計算出該結點的存儲地址。

【數據結構】數據結構的概述