數據結構概論

1. 為什么學習數據結構(Data Structure)?

  • 程序 = 數據結構 + 算法

程序不過就是一個獲取數據、處理數據,展示數據的一個綜合體。
數據結構就是一個裝載數據,并可以對數據進行簡單處理的有效工具。
如何利用合適的結構,處理數據,達到一個空間和時間的平衡,就是我們數據結構所需要學習的內容。


2. 數據結構需要學習的內容

數據結構包含兩方面內容:一是組成集合的數據元素,二是數據元素之間存在的關系。

將上面的內容展開,數據結構需要學習的內容主要有以下幾點:

  • 邏輯結構 (logic structure):
  • 存儲結構 (store structure)
  • 常用操作 (operations)
  • 性能 (performance)
  • 適用場景

2.1 邏輯結構

  • 定義:邏輯結構是指,在邏輯上,數據結構的排列方式。它是給人直觀上的感受。(此處語言待斟酌)
    可以用一個二元組表示:
    <center> G = (D,R) </center>
    D:表示數據元素的有限集合
    R:表示在D上關系的有限集合(個人感覺關系可以理解為運算操作)
  • 分類:
邏輯結構分類圖.png
  • 集合:元素之間除了同屬一個集合沒有其他關系
  • 線性結構:數據元素之間有著一對一的關系數據元素之間有一種先后關系,每一個節點最多有一個前驅結點和后驅節點。
  • 樹形結構:結構中元素存在著一種一對多的關系,即每一個元素向上與一個元素相連(稱為雙親節點),向下與多個元素相連(孩子節點)
  • 圖形結構(網狀結構):元素之間存在著多對多的關系,元素中任意元素都可以有關聯。

2.2 存儲結構:

  • 定義:存儲結構是指數據在計算機中的如何存儲的,也可以稱為物理結構。

  • 分類:順序存儲、鏈式存儲、索引存儲和散列存儲

數據結構-存儲結構分類圖.png
  • 順序存儲:數據元素在計算機中是按順序依次存儲
  • 鏈式存儲:數據元素額外存儲下一個元素的存儲地址,元素之間在存儲位置上不需要相鄰。
  • 索引存儲:在原有數據結構存儲結構基礎上,額外簡歷一張索引表,索引表中每一項由關鍵字和地址組成。
  • 散列存儲:通過構造散列函數來確定元素存儲位置。

2.3 運算

  1. 插入
  2. 刪除
  3. 修改
  4. 計總
  5. 是否為空
  6. 是否滿
  7. 添加

3. 如何學習數據結構

常用數據結構由數組、棧、鏈表、隊列、樹家族、圖

針對每一種數據結構從邏輯結構、存儲結構和運算分析,并通過java語言對各種數據結構進行實現,比較每種數據結構在各種運算上的性能。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容