抽象數據類型(ADT)
- 2022 年 5 月 22 日
- 筆記
抽象數據類型(Abstract Data Type,ADT)是指一個數學模型以及定義在這個模型上的一組操作。
抽象數據類型的定義僅僅取決於它的一組邏輯特性,而與它在電腦中的表示和實現無關。
例如,int類型的數據表示的是整數,可以進行加減乘除模等一些運算,int類型數據的這些數學特性保持不變,那麼在編程者來看,他們都是相同的。
因此,數據抽象的意義在於數據類型的數學抽象特性。
抽象數據類型和數據類型在實質上是一個概念,只不過是對數據類型的進一步抽象,不僅限於各種不同的電腦處理器中已經實現的數據類型,還包括為解決更為複雜的問題而由用戶自定義的複雜數據類型。
例如,在統計學生資訊時,經常使用姓名、學號、成績等資訊,我們可以定義這樣的一個抽象數據類型student,它封裝了姓名、學號、成績三個不同類型的變數,這樣操作student的變數就能夠很方便的知道這些資訊了。C語言中的結構體以及C++、java語言中的類等都是這種形式。
##通俗的講
抽象數據類型,泛指除基本數據類型以外的數據類型。
什麼叫類型?就是一類數據。基本數據類型被人做是最基本地,不可再劃分的數據,一般就是整形、浮點型、以及字元型。抽象數據類型是由若干基本數據類型歸併之後形成的一種新的數據類型,這種類型由用戶定義,功能操作比基本數據類型更多,一般包括結構體和類。其實說白了,抽象數據類型就是把一些有一定關聯的基本數據類型打包,然後當做新的數據類型使用。
至於有什麼用,這個用處可大了。比如你要實現對一個人地資訊管理,如果你只用基本數據類型那麼你需要定義很多數據類型的變數比如名字、性別、出生地、生日之類的,並且操作起來不方便。如果用抽象數據來實現就簡單了,直接把這些資訊放包裝在一個新的數據類型中,然後就可以直接定義這樣的一個變數就可以了。
C++中的類更好的實現了封裝功能,這就是類。類使得抽象數據類型的可操作性更強了,真正實現了面向對象。至於用法,只要學過C++肯定知道類地用法吧?那就是如何用。也許你現在覺得這樣的操作更麻煩了,還不如C語言簡潔的好。但是當你有一天真正的進入了公司,你才發現面向對象編程是多麼棒的一種編程方式,他可以讓你更高效的去開發。
同時告訴你,你對負責操作不是很了解只能證明你的編程數量不夠,在編程領域中永遠要記住一句話:鋼是打出來的。編程僅僅靠看書或是聽老師講解是行不通的,必須親自躬行才能真正掌握它