更新時間:2020-12-08 17:39:22 來源:動力節點 瀏覽1619次
抽象數據類型(abstract data type,ADT)實際上只是一個數學模型以及定義在模型上的一組操作。當然,這里的抽象是動詞而不是名詞,即通常是對數據的抽象,定義了數據的取值范圍以及對數據操作的集合。
抽象數據類型有兩個關鍵詞,一個叫“數據類型”,一個叫“抽象”,它們分別是什么意思呢?
首先,來說說什么是數據類型,數據類型包含了兩個東西,一個是“數據對象集”,就是我們說的“是什么東西”,第二個是“數據集合相關聯的操作集”,就像我們不能單純講怎么去處理圖書,我們是要對這些圖書進行操作的,這兩件事情:圖書的擺放,對圖書的操作,是緊密結合在一起的。這兩個東西在C語言里是獨立處理的,但是在一些面向對象的語言里邊,比如C++、Java,你就會發現,它們很好的為數據類型專門設計了一種機制,就是一個“類”,把這個數據集跟它相關的操作集封裝在一個類里面。
那再說什么是抽象。抽象,抽象的意思就是“不具體”,就是說,描述數據類型的方法是不依賴于具體的實現的,對一個數據類型的描述,它跟存放數據的機器,數據存儲的物理結構和實現操作的算法和編程語言皆無關。
以面向對象編程為例,在創建一個對象的時候,要給定這個對象有哪些屬性以及行為,并且可以通過一套接口描述說明這個對象用來干什么的,在給定輸入的時候,產生相應的結果,并不需要知道其內部實現的具體細節。其基本思想是,把數據定義為抽象的對象集合,并賦予它們合法操作,同時,不暴露其數據的表示細節和操作的實現細節。
抽象數據類型(ADT)是由公理定義的抽象概念,這些公理表示數據和對該數據的操作。ADT的定義,不在具體實例的范疇內,也不指代實現中具體的數據類型、結構或算法。相反,ADT對數據類型的定義,僅僅是根據數據類型的操作,和這些操作必須遵循的公理來的。
常見數據類型示例:
ADT可以代表對任何類型的數據的任何一組操作。換句話說,所有可能的 ADT 的窮舉列表是無限的,其原因與所有可能的英語句子的窮舉列表是無限的類似。ADT是對未指定數據的一組操作的抽象概念,而不是對某特定組的具體數據的操作。其實,數據類型和抽象數據類型可以看成一種概念。比如,各種計算機都擁有的整數類型就是一個抽象數據類型,盡管實現方法不同,但他們的數學特性相同。抽象數據類型的特征就是實現與操作分離,從而實現封裝。
抽象數據類型之所以如此受重視,是因為ADT為我們提供了一種以數學上合理且明確的方式來正式定義可重用模塊的方法。這使我們可以共享一種通用語言,以引用大量有用的軟件構建塊詞匯:學習和牢記這種理念,對我們在不同領域、框架,甚至編程語言之間都會大有幫助。如此重要的抽象數據類型的知識,只要輕輕一點,打開本站的數據結構和算法教程,你就能輕松掌握哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習