資料結構總結 第一章:緒論

華盛頓砍倒櫻桃樹發表於2019-07-06

1.2.1基本結構概念和術語

       1.資料:客觀事物的符號表示,是所有能輸入到計算機中並被計算機程式處理的符號的總稱

       2.資料元素:是資料的基本單位,在計算機中通常作為一個整體加以考慮和處理

       3.資料項:  組成資料元素的最小基本單位,具有獨立含義且不可分割

       4.資料物件:是性質相同的資料元素總和(集合)是資料的一個子集

  注:資料元素是資料的基本單位,資料項是組成資料元素的最小基本單位,二者不可混淆

   由上面的定義我們可以看出他們的關係是:資料>資料物件>資料元素>資料項


1.2.2 資料結構的基本分類

  1. 資料結構:相互之間存在一種或多種特定關係的資料元素的集合,資料結構包括邏輯結構、儲存結構和操作(運算)三個層次
  2. 儲存結構:資料物件在計算機中的儲存表示稱為資料的儲存結構,也稱為物理結構。儲存結構分為順序儲存結構和鏈式結構
  3. 邏輯結構:邏輯結構是資料本身的關係與計算機和儲存結構無關是邏輯結構在計算機內的儲存映像,與資料元素的形式內容和相對位置均有關係,邏輯結構是從邏輯上描述資料,從具體問題抽象出來的數學模型

1.2.3 資料型別和抽象資料型別

資料型別:一組性質相同的值的集合以及定義在這個值集合上的一組操作的總稱。

抽象資料型別:由使用者定義的、表示應用問題的數學模型,以及在在這個模型上一組操作的總稱,具體包括資料物件、資料物件上關係的集合、以及資料物件的基本操作集合

1.3 抽象資料型別的表示與實現

抽象資料型別獨立於具體實現,將資料和操作封裝在一起,使得使用者程式只能通過抽象資料型別定義的某些操作來訪問其中的資料,從而實現資訊隱藏。

在資料結構具體操作中以下為一些常用的巨集定義表示方法

//表示函式執行結果狀態的程式碼

#define OK 1

#define ERROR 0

#define OVERFLOW -2

//Status 是函式返回值型別,其值對應結果狀態

typedef int Status;

抽象資料型別的定義、表示、實現過程

(1)定義部分

ADT <抽象資料型別名>

{

       資料物件:D={ ai | ai ∈ ElemSet,i=1,2,3….n,n>0 }

       資料關係:R={ <ai-1,ai> | ai-1,ai∈D,i=2…n }

       基本操作

       函式A(參數列)

              初始條件:………

操作結果:………

       函式B(參數列)

              初始條件:………

操作結果:………

}ADT 抽象資料型別名

(2)表示部分

typedef struct

{

              變數1;

              變數2;

              ………

}<資料型別名>

(3)實現部分

<函式型別>  <函式名>  (函式參數列)

{

       //演算法說明

       <語句序列>

}

1.4 演算法的定義及特性以及評價演算法優劣的基本標準

演算法:為了解決某類問題而規定的一個有限長的操作序列。

演算法的五個重要特性:

有窮性:演算法在有窮步完成,在有窮時間內完成

確定性:演算法在執行過程中不產生二義性

可行性:所有操作都可以通過已經實現的基本操作運算執行有限次來實現

輸入:一個演算法有零個或多個輸入

輸出:一個演算法有一個或多個輸出,沒有輸出的演算法沒有任何意義

評價演算法優劣的基本標準:

正確性:在合理的資料輸入下能夠在有限的執行時間內得到正確的結果

可讀性:一個好的演算法,應該便於人們理解和交流

健壯性:演算法能夠在輸入資料非法時做出正確的反應和相應的處理

高效性(時間和空間兩方面):一個好的演算法具有時間高效和空間的高效的特點

相關文章