《計算機科學導論》之抽象數據類型(ADT)

抽象數據類型

1、引言

    1抽象數據類型和數據結構的關係

    抽象數據類型(ADT)是一種比數據結構處於更高抽象層的數據類型,ADT使用數據結構來實現。

    2數據類型的定義和應用於數據的操作定義是ADT背後的一部分概念,隱藏數據上的操作是如何進行的。

    3分類:簡單抽象數據類型和複雜抽象數據類型

    簡單ADT:整數、實數、字符、指針;

    複雜ADT:需要建立。不需要詳細說明實現過程的泛化操作成爲抽象。

    抽象概念意味着:

    ①知道一個數據類型能做什麼;

    ②如何去做是隱藏的。

    4定義

    抽象數據類型就是與對數據類型有意義的操作封裝在一起的數據聲明。然後,用它封裝數據和操作並對用戶隱藏。

    抽象數據類型:

    ①數據的定義;

    ②操作的定義;

    ③封裝數據和操作。

    5抽象數據類型的模型

    抽象數據類型的模型分兩個部分:數據類型和操作函數(公有的和私有的);

    規則:

    ①數據結構(如數組、鏈表)在抽象數據類型裏面,被公有和私有操作使用;

    ②應用程序只能通過接口訪問公有操作;

    ③私有操作是抽象數據類型的內部用戶使用的;

    ④雖然公有操作和接口應該獨立於實現,但私有操作依賴於抽象數據類型實現時所選擇的數據類型。    

    6抽象數據類型的實現

    計算機語言不提供抽象數據類型包。要使用抽象數據類型,首先要實現它們,把它們存儲在庫中。

    7幾種複雜的數據類型

    ①棧

    ②隊列

    ③廣義線性表

    ④樹(二叉樹、二叉搜索樹)

    ⑤圖

2、棧

    1棧的定義

    棧是一種限制線性列表,該類型表的添加和刪除操作只能在一端實現,稱爲棧頂。

    倒轉的屬性是棧被稱爲後進先出數據結構的原因。

    2棧的操作

    ①建棧

    ②入棧

    ③出棧

    ④空

    3棧的抽象數據類型

    4棧的應用

    ①倒轉數據

    ②配對數據

    ③數據延遲使用

    ④回溯步驟

    5棧的實現

    ①使用數組實現:有帶兩個域的記錄

    ②使用鏈表實現:有一個有棧名字的額外節點

3、隊列

    1隊列的定義

    2隊列的操作

    3隊列的抽象數據類型

    4隊列的應用

    5隊列的實現

4、廣義線性表

    1廣義線性表的定義

    2廣義線性表的操作

    3廣義線性表的抽象數據類型

    4廣義線性表的應用

    5廣義線性表的實現

5、樹的基礎知識

6、二叉樹

    1二叉樹的遞歸定義

    2二叉樹的操作

    3二叉樹的應用

    4二叉樹的實現

7、二叉搜索樹

    1二叉搜索樹的定義

    2二叉搜索樹的抽象數據類型

    3二叉搜索樹的實現

8、圖

    1圖的定義

    2圖的應用

    



    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章