2018 -0529 C語言學習 ----抽象資料型別
按照課本所說抽象資料型別 ---提供型別屬性和相關操作的抽象描述。
個人理解抽象資料型別就是一個新的型別想int 那種的,在這個型別下提供了對這種型別的操作,比如int 型別 可以 + 、-、而這些加減其實就是對這個資料型別的操作。
也就是我們自己去定義一個數據型別,並提供其操作方法。
比如定義一個抽象型別叫連結串列,將其和int 型別比較(注: 型別特指兩類資訊:屬性和操作):
型別名: 連結串列 型別名:int
型別屬性: 儲存一系列項 型別屬性:代表一個整數值
型別操作: 初始化連結串列為空; 型別操作:改變int型別值符號
確定連結串列為空 兩個int型別值相加
確定連結串列已滿 相減,,
確定連結串列中的項數 相乘
。。。。。 相除.....
通過對比發現,抽象資料其實就是我們去定義一個我們需要的資料型別,然後定義它的操作。有點像struct 但是struct沒有定義相關的結構操作。
下面以連結串列為例子:
建立的抽象的步驟:
①建立介面:使用抽象資料型別要先開發實現一個ADT的程式設計介面,即指明如何儲存資料和執行所需函式的操作,其實我個人理解就是去:
1.定義一個型別描述如何表示資料,
2.然後定義它是如何操作的。
其實介面就是定義了 我是什麼,我可以做什麼。但是是怎麼做的不在介面檔案中。就是說介面檔案裡面是資料型別定義,與這個資料型別所能操作的函式名。
②使用介面: 說白了就是主函式,去呼叫①介面中的函式;
③實現介面:就是①介面中函式的具體實現步驟;
個人理解是,介面相當於手冊裡面是解釋這個函式是幹嘛的,資料結構是什麼,使用介面就是我去用這個手冊裡面的東西,實現介面就是手冊裡面的核心被封裝起來的東西。