《大話資料結構》Swift-01

Zack_Go發表於2018-03-14

為什麼要學習資料結構

學習通用性知識,突破技能瓶頸 為了提高自己的程式設計技術水平,決定吧資料結構和演算法好好學習一遍。至於為什麼用swift,因為我是iOS開發,哈哈。喜歡用swift而已。

學習方法

  • 用swift改造《大話資料結構》的程式碼
  • 閱讀第一遍的時候從頭到尾,摘抄一些重點知識
  • 寫出演算法實現+適當的練習

資料結構緒論

資料結構:是相互之間存在一種或多種特定關係的資料元素的集合

按照視點不同,我們把資料結構分為邏輯機構和物理結構。

  • 邏輯結構:資料物件中資料元素之間的相互關係
  • 物理結構:資料的邏輯結構在計算機中的儲存形式

邏輯結構

  • 集合結構:集合結構中的資料元素除了同屬於一個集合外,它們之間沒有其他關係。
  • 線性結構:線性結構中的資料元素之間是一對一的關係
  • 樹形結構:樹形結構中的資料元素之間存在一對多的層次關係
  • 圖形結構:圖形結構的資料元素是多對多的關係。

物理結構

  • 順序儲存結構:是把資料元素存放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。(陣列)
  • 鏈式儲存結構:是把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。(單連結串列、雙連結串列)

資料型別

資料型別 = 集合 + 操作

資料型別: 是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。

抽象資料型別

抽象資料型別(Abstract Data Type,ADT):是指一個數學模型及定義在此模型上的一組操作。

需要注意的是:抽象資料型別的定義僅僅取決於它的一組邏輯特性,而與其在計算機內部如何表示和實現沒有關係。而且,抽象資料型別不僅僅指那些已經定義並實現的資料型別,還可以是計算機程式設計者自己定義的資料型別。 抽象資料型別的標準格式:

ADT 抽象資料型別名
Data
    資料元素之間的邏輯關係定義
Operation
    操作1
        初始條件
        操作結果描述
    操作2
        .....
    操作n
        ......
endADT
複製程式碼

相關文章