1. 程式人生 > >2018 -0529 C語言學習 ----抽象資料型別

2018 -0529 C語言學習 ----抽象資料型別

按照課本所說抽象資料型別 ---提供型別屬性和相關操作的抽象描述。

個人理解抽象資料型別就是一個新的型別想int 那種的,在這個型別下提供了對這種型別的操作,比如int 型別 可以 + 、-、而這些加減其實就是對這個資料型別的操作。

也就是我們自己去定義一個數據型別,並提供其操作方法。

比如定義一個抽象型別叫連結串列,將其和int 型別比較(注: 型別特指兩類資訊:屬性和操作):

型別名: 連結串列                                                                型別名:int                

型別屬性: 儲存一系列項                                               型別屬性:代表一個整數值

型別操作: 初始化連結串列為空;                                        型別操作:改變int型別值符號

                    確定連結串列為空                                                                兩個int型別值相加

                    確定連結串列已滿                                                                相減,,

                    確定連結串列中的項數                                                          相乘

                    。。。。。                                                                    相除.....

   通過對比發現,抽象資料其實就是我們去定義一個我們需要的資料型別,然後定義它的操作。有點像struct 但是struct沒有定義相關的結構操作。

下面以連結串列為例子:

建立的抽象的步驟:

①建立介面:使用抽象資料型別要先開發實現一個ADT的程式設計介面,即指明如何儲存資料和執行所需函式的操作,其實我個人理解就是去:

1.定義一個型別描述如何表示資料,

2.然後定義它是如何操作的。

其實介面就是定義了 我是什麼,我可以做什麼。但是是怎麼做的不在介面檔案中。就是說介面檔案裡面是資料型別定義,與這個資料型別所能操作的函式名。


②使用介面:  說白了就是主函式,去呼叫①介面中的函式;

③實現介面:就是①介面中函式的具體實現步驟;

個人理解是,介面相當於手冊裡面是解釋這個函式是幹嘛的,資料結構是什麼,使用介面就是我去用這個手冊裡面的東西,實現介面就是手冊裡面的核心被封裝起來的東西。