熱線電話:13121318867

登錄
首頁精彩閱讀數據結構、數據類型和抽象數據類型概念區別
數據結構、數據類型和抽象數據類型概念區別
2015-12-02
收藏

數據結構、數據類型和抽象數據類型概念區別



數據結構、數據類型和抽象數據類型,這三個術語在字面上既不同又相近,反映出它們在含義上既有區別又有聯系。 

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

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

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

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

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

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

     成分數據的個數固定,它們之間的邏輯關系由成分數據的序號(或叫數組的下標)來體現。這些成分數據按照序號的先后順序一個挨一個地排列起來。 每一個成分數據具有相同的結構(可以是簡單結構,也可以是復雜結構),因而屬于同一個數據類型(相應地是簡單數據類型或構造數據類型)。這種同一的數據類型稱為基類型。 所有的成分數據被依序安排在一片連續的存儲單元中。 概括起來,數組結構是一個線性的、均勻的、其成分數據可隨機訪問的結構。由于這種結構有這些良好的特性,所以最常被人們所采用。在高級語言中,與數組結構相對應的數據類型是數組類型,即數組結構的數據變量必須說明為array [i] of T0 ,其中i是數組結構的下標類型,而T0是數組結構的基類型。

     記錄結構是另一種常用的數據結構。它的特點是:     與數組結構一樣,成分數據的個數固定。但成分數據之間沒有自然序,它們處于平等地位。每一個成分數據被稱為一個域并賦予域名。不同的域有不同的域名。 不同的域允許有不同的結構,因而允許屬于不同的數據類型。 與數組結構一樣,它們可以隨機訪問,但訪問的途徑靠的是域名。 在高級語言中記錄結構對應的數據類型是記錄類型。記錄結構的數據的變量必須說明為記錄類型。

     抽象數據類型的含義在上一段已作了專門敘述。它可理解為數據類型的進一步抽象。即把數據類型和數據類型上的運算捆在一起,進行封裝。引入抽象數據類型的目的是把數據類型的表示和數據類型上運算的實現與這些數據類型和運算在程序中的引用隔開,使它們相互獨立。對于抽象數據類型的描述,除了必須描述它的數據結構外,還必須描述定義在它上面的運算(過程或函數)。抽象數據類型上定義的過程和函數以該抽象數據類型的數據所應具有的數據結構為基礎。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢