當前位置:成語大全網 - 新華字典 - 什麽是抽象數據類型

什麽是抽象數據類型

問題壹:數據結構 抽象數據類型是什麽? 這兩個概念,尤其是第壹個都是特別抽象的概念,沒什麽具體可對應的實體可以給妳舉例,我就粘貼復制了,說說我的理解吧。

數據埂構呢,我們總是為了完成壹個功能或者目的寫程序,但不管什麽程序、代碼實際上都是壹些指令的 *** ,說白了就是在描述“怎麽做”,而光知道怎麽做還只是問題的壹半,還要知道“做什麽”,也就是剛才那些指令的對象是誰,自然肯定是相關的數據,比如說學生信息管理中,指令是增加學生,那他的對象就是學生信息這種數據,指令是成績統計,那對象就是學生的成績數據,而在我們的程序中,數據也必須要有壹種很明確的組織表示方式,只要這樣我們才能在這種具體明確的實體上編寫指令,比如說學生數據可以定義為壹個多維的數組,只有這樣我們再寫增加學生時,才能知道具體增加就是增加壹個數組元素並未其賦值。所以數據結構就是相互之間有聯系的具有某種組織方式的數據 *** 。

抽象數據類型相比較數據結構要具體壹些,我們光有了數據結構還不夠,因為數據是各種各樣的,對於不同數據,我們能采取的方法也不壹樣,比如說學生數據可以增減,成績數據可以進行算數運算,但是為什麽說抽象呢,也就說他並不是具體整型還是字符型這種基本類型,而是我們根據我們要解決的實際問題,對應現實世界所描述的壹種和現實世界中的實體對應的數據類型,而且這種抽象的數據類型還包括能夠對於他實行的操作,比如說我們定義壹種數據類型叫“學生”,具體的數據我可以定義壹中類似表的結構存儲,而且還要定義壹些操作,比如說添加學生,刪除學生,這兩部分就***同組成了“學生”這個抽象的數據類型。

不知妳明白沒?

問題二:我去!到底什麽是抽象數據類型,幹啥用的? 抽象數據類型是基於壹類邏輯關系的數據類型以及定義在這個類型之上的壹組操作。通俗點說就是某個數據結構的定義和對個數據結構的所有操都放在壹起,這樣看著比較整潔。比如線性表抽象數據類型就是線性表的數學定義,和對線性表的求長度,判斷是否為空,插入刪除元素,等壹系列函數放在壹起的壹大塊東西。妳大概理解就行,主要是要把裏面每個函數的實現過程搞清楚。

問題三:抽象數據類型有什麽用?怎麽用? 首相數據類型,泛指除基本數據類型以外的數據類型。什麽叫類型?就是壹類數據。基本數據類型被人做是最基本地,不可再劃分的數據,壹般就是整形、浮點型、以及字符型。抽象數據類型是由若幹基本數據類型歸並之後形成的壹種新的數據類型,這種類型由用戶定義,功能操作比基本數據類型更多,壹般包括結構體和類。其實說白了,抽象數據類型就是把壹些有壹定關聯的基本數據類型打包,然後當做新的數據類型使用。

至於有伐麽用,這個用處可大了。比如妳要實現對壹個人地信息管理,如果妳只用基本數據類型那麽妳需要定義很多數據類型的變量比如名字、性別、出生地、生日之類的,並且操作起來不方便。如果用抽象數據來實現就簡單了,直接把這些信息放包裝在壹個新的數據類型中,然後就可以直接定義這樣的壹個變量就可以了。

C++中的類更好的實現了封裝功能,這就是類。類使得抽象數據類型的可操作性更強了,真正實現了面向對象。至於用法,只要學過C++肯定知道類地用法吧?那就是如何用。也許妳現在覺得這樣的操作更麻煩了,還不如C語言簡潔的好。但是當妳有壹天真正的進入了公司,妳才發現面向對象編程是多麽棒的壹種編程方式,他可以讓妳更高效的去開發。

同時告訴妳,妳對負責操作不是很了解只能證明妳的編程數量不夠,在編程領域中永遠要記住壹句話:鋼是打出來的。編程僅僅靠看書或是聽老師講解是行不通的,必須親自躬行才能真正掌握它

問題四:數據結構裏抽象數據類型定義有什麽用? 編寫壹個數據類型作為基礎類型,這些抽象操作就轉換為該類型的成員函數,如果對外的接口就在公有域中,其他在保護或者私有按具體情況

編寫該基礎類型後,再聲明對象,通供對象使用這些操作了

問題五:在數據結構裏,什麽是抽象數據類型 1、象數據類型(Abstract Data Type 簡稱ADT)是指壹個數學模型以及定義在此數學模型上的壹組操作。

2、抽象數據類型需要通過固有數據類型(高級編程語言中已實現的數據類型)來實現。

3、抽象數據類型是與表示無關的數據類型,是壹個數據模型及定義在該模型上的壹組運算。

4、對壹個抽象數據類型進行定義時,必須給出它的名字及各運算的運算符名,即函數名,並且規定這些函數的參數性質。壹旦定義了壹個抽象數據類型及具體實現,程序設計中就可以像使用基本數據類型那樣,十分方便地使用抽象數據類型。

問題六:抽象數據類型與數據結構有什麽具體的區別和聯系 5分 數據結構、數據類型和抽象數據類型,這三個術語在字面上既不同又相近,反映出它們在含義上既有區別又有聯系。

數據結構是在整個計算機科學與技術領域上廣泛被使用的術語。它用來反映壹個數據的內部構成,即壹個數據由哪些成分數據構成,以什麽方式構成,呈什麽結構。數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據之間的邏輯關系,物理上的數據結構反映成分數據在計算機內的存儲安排。數據結構是數據存在的形式。

v數據是按照數據結構分類的,具有相同數據結構的數據屬同壹類。同壹類數據的全體稱為壹個數據類型。在程序設計高級語言中,數據類型用來說明壹個數據在數據分類中的歸屬。它是數據的壹種屬性。這個屬性限定了該數據的變化範圍。為了解題的需要,根據數據結構的種類,高級語言定義了壹系列的數據類型。不同的高級語言所定義的數據類型不盡相同。Pascal語言所定義的數據類型的種類如圖1-8所示。

其中,簡單數據類型對應於簡單的數據結構;構造數據類型對應於復雜的數據結構;在復雜的數據結構裏,允許成分數據本身具有復雜的數據結構,因而,構造數據類型允許復合嵌套;指針類型對應於數據結構中成分數據之間的關系,表面上屬簡單數據類型,實際上都指向復雜的成分數據即構造數據類型中的數據,因此這裏沒有把它劃入簡單數據類型,也沒有劃入構造數據類型,而單獨劃出壹類。

數據結構反映數據內部的構成方式,它常常用壹個結構圖來描述:數據中的每壹項成分數據被看作壹個結點,並用方框或圓圈表示,成分數據之間的關系用相應的結點之間帶箭號的連線表示。如果成分數據本身又有它自身的結構,則結構出現嵌套。這裏嵌套還允許是遞歸的嵌套。

由於指針數據的引入,使構造各種復雜的數據結構成為可能。按數據結構中的成分數據之間的關系,數據結構有線性與非線性之分。在非線性數據結構中又有層次與網狀之分。 由於數據類型是按照數據結構劃分的,因此,壹類數據結構對應著壹種數據類型。數據類型按照該類型中的數據所呈現的結構也有線性與非線性之分,層次與網狀之分。壹個數據變量,在高級語言中的類型說明必須是讀變量所具有的數據結構所對應的數據類型。

最常用的數據結構是數組結構和記錄結構。數組結構的特點是:

成分數據的個數固定,它們之間的邏輯關系由成分數據的序號(或叫數組的下標)來體現。這些成分數據按照序號的先後順序壹個挨壹個地排列起來。

每壹個成分數據具有相同的結構(可以是簡單結構,也可以是復雜結構),因而屬於同壹個數據類型(相應地是簡單數據類型或構造數據類型)。這種同壹的數據類型稱為基類型。

所有的成分數據被依序安排在壹片連續的存儲單元中。

概括起來,數組結構是壹個線性的、均勻的、其成分數據可隨機訪問的結構。由於這種結構有這些良好的特性,所以最常被人們所采用。在高級語言中,與數組結構相對應的數據類型是數組類型,即數組結構的數據變量必須說明為array [i] of T0 ,其中i是數組結構的下標類型,而T0是數組結構的基類型。

記錄結構是另壹種常用的數據結構。它的特點是:

與數組結構壹樣,成分數據的個數固定。但成分數據之間沒有自然序,它們處於平等地位。每壹個成分數據被稱為壹個域並賦予域名。不同的域有不同的域名。

不同的域允許有不同的結構,因而允許屬於不同的數據類型。

與數組結構壹樣,它們可以隨機訪問,但訪問的途徑靠的是域名。

在高級語言中記錄結構對應的數據類型是記錄類型。記錄結構的數據的變量必須說......>>

問題七:抽象數據類型 類的基礎:抽象數據類型抽象數據類型(ADT, abstract data type)是指壹些數據以及對這些數據所進行的操作的 *** 。這些操作既向程序的其余部分描述了這些數據是怎麽樣的,也允許程序的其余部分改變這些數據。“抽象數據類型”概念中“數據”壹詞的用法有些隨意。壹個ADT可能是壹個圖形窗體以及所有能影響該窗體的操作;也可以是壹個文件以及對這個文件進行的操作;或者是壹張保險費率表以及相關操作等等。要想理解面向對象編程,首先要理解ADT。不懂ADT的程序員開發出來的類只是名義上的“類”而已――實際上這種“類”只不過就是把壹些稍有點兒關系的數據和子程序堆在壹起。然而在理解ADT之後,程序員就能寫出在壹開始很容易實現、日後也易於修改的類來。傳統的編程教科書在講到抽象數據類型時,總會用壹些數學中的事情打岔。這些書往往會像這麽寫:“妳可以把抽象數據類型想成壹個定義有壹組操作的數學模型。”這種書會給人壹種感覺,好像妳從不會真正用到抽象數據類型似的――除非拿它來催眠。把抽象數據類型解釋得這麽空洞是完全丟了重點。抽象數據類型可以讓妳像在現實世界中壹樣操作實體,而不必在低層的實現上擺弄實體,這多令人興奮啊。妳不用再向鏈表中插入壹個節點了,而是可以在電子表格中添加壹個數據單元格,或向壹組窗體類型中添加壹個新類型,或給火車模型加掛壹節車廂。深入挖掘能在問題領域工作(而非在底層實現領域工作)的能量吧!Example of the Need for an ADT需要用到ADT的例子為了展開討論,這裏先舉壹個例子,看看ADT在什麽情況下會非常有用。有了例子之後我們將繼續深入細節探討。假設妳正在寫壹個程序,它能用不同的字體、字號和文字屬性(如粗體、斜體等)來控制顯示在屏幕上的文本。程序的壹部分功能是控制文本的字體。如果妳用壹個ADT,妳就能有捆綁在相關數據上的壹組操作字體的子程序――有關的數據包括字體名稱、字號和文字屬性等。這些子程序和數據 *** 為壹體,就是壹個ADT。如果不使用ADT,妳就只能用壹種拼湊的方法來操縱字體了。舉例來說,如果妳要把字體大小改為12磅(point),即高度碰巧為16個像素(pixel),妳就要寫類似這樣的代碼:currentFont.size = 16如果妳已經開發了壹套子程序庫,那麽代碼可能會稍微好看壹些:currentFont.size = PointsToPixels(12)或者妳還可以給該屬性起壹個更特定的名字,比如說:currentFont.sizeOnPixels = PointsToPixels(12)但妳是不能同時使用currentFont.sizeInPixels和currentFont.sizeInPoints,因為如果同時使用這兩項數據成員,currentFont就無從判斷到底該用哪壹個了。而且,如果妳在程序的很多地方都需要修改字體的大小,那麽這類語句就會散布在整個程序之中。如果妳需要把字體設為粗體,妳或許會寫出下面的語句,這裏用到了壹個邏輯or運算符和壹個16進制常量0x02:currentFont.attribute = CurrentFont.attribute or 0x02如果妳夠幸運的話,也可能代碼會比這樣還要幹凈些。但使用拼湊方法的話,妳能得到的最好結果也就是寫成這樣:currentFont.attribute = CurrentFont.attribute or BOLD或者是這樣:currentFont.bold = True就修改字體大小而言,這些做法都存在壹個限制,即要求調用方代碼直接控制數據成員,這無疑......>>

問題八:抽象數據類型的簡介 抽象數據類型的描述包括給出抽象數據類型的名稱、數據的 *** 、數據之間的關系和操作的 *** 等方面的描述。抽象數據類型的設計者根據這些描述給出操作的具體實現,抽象數據類型的使用者依據這些描述使用抽象數據類型。

問題九:抽象數據類型定義有哪些內容 內容定義闡發已

存儲結構計算機內才意義邏輯結構映射已所存儲結構算重復沒意義

邏輯結構包含數據象數據關系

數據運算包含數據象數據關系基本操作集

三元素復合已

比產力構要素勞者勞工具勞象勞工具勞象歸勞資料

問題十:c/c++中類和抽象數據類型的區別 抽象數據類型

abstract data type

其實更多的是壹種數據結構上的概念

類的話妳因該比較熟悉,

比如我們要做壹個鏈表

我們這次對class A;寫壹個鏈表,

但是可能換了class V又要寫壹個新的鏈表

為了避免這種重復性勞動

我們可以創造壹個模板,提供壹些基本操作

如插入,刪除,排序等等

然後以後所有類型都可以使用

最著名的就是STL庫了

實現了list,vector.stack,queue

等等

使用麽

vector a;

class A{};

stack b;

可以看壹下STL的使用