數據結構的基本概念
數據:
數據(data)是描述客觀事物的數字、字符以及所有能夠輸入到計算機中并能被計算機接受的各種符號集合的統稱。數據是信息的符號表示,是計算機程序的處理對象。除了數值數據,計算機能夠處理的數據還可以是各種非數值數據,如字符串、圖形、音頻、視頻等多媒體數據。
表示一個事物的一組數據稱為一個數據元素(data element):數據元素是數據的基本單位。一個數據元素可以是一個不可分割的原子項,也可以由多個數據項組成。
數據項(data item)是數據元素中有獨立含義的、不可分割的最小標識單位。例如,一個整數、一個字符都是原子項;一個學生數據元素包含學號、姓名、性別和出生日期等多個數據項組成。
數據類型:
類型(type)是具有相同邏輯意義的一組值的集合。數據類型(data type)是指一個類型和定義在這個類型上的操作集合。數據類型定義了數據的性質、取值范圍以及對數據所能進行的各種操作。例如,Java語言的整數類型int,除了數值集合[-231,...,-2,-1,0,1,2,...,231-1]之外,還包括在這個值集合上的操作集合[+,-,*,/,%,=]。
程序中的每一個數據都屬于一個數據類型,決定了數據的類型也就決定了數據的性質以及對數據進行的運算和操作,同時數據也受到類型的保護,確保數據不能進行非法操作。
高級程序涉及語言通常預定一些基本數據類型和構造數據類型。基本數據類型的值是不可分解的,它可直接參與該類型所允許的運算。構造數據類型是使用已有的簡單數據類型和已定義的構造數據類型按照一定的語法規則組織起來的較復雜的數據類型。構造數據類型的變量包含多個數據項。
java語言的基本數據類型有整數類型、浮點數類型、字符類型、布爾類型,構造數據類型(引用類型)有數組、類和接口。
數據結構
計算機處理的數據不是雜亂無章的,而是有著內在聯系的。只有分析清楚它們的內在聯系,對大量的、復雜的數據才能進行復核的組織和有效處理。
數據結構是指元素之間存在的關系。一個數據結構(data structure)是由n(n≥0)個數據元素組成的有限集合,數據元素之間具有某種特定的關系。
數據結構概念包括三方向:數據的邏輯結構
數據的存儲結構
數據的操作
數據結構與數據類型兩個概念的側重點不同。數據類型研究的是每種數據所具有的特性,以及對這種特性的數據能夠進行哪些操作;數據結構研究的是數據元素之間具有的相互關系,數據結構與數據元素的數據類型無關,也不隨數據元素值的變化而變化。
抽象數據類型
程序設計語言使用數據類型描述數據特性,采取“表示與實現分離”的策略。語言本身僅提供數據類型的語法規則,并沒有說明這些數據類型是如何實現的;程序員按照這些規則使用數據類型,而不必知道這些數據類型是如何實現的。
抽象數據類型(Abstract Data type,ADT)指一個數學模型以及定義在該模型上的一組操作。抽象數據類型和數據類型本質上是一個概念,它的最重要特征是將一個類型上的數據及操作的邏輯含義與具體實現分離
與使用數據類型描述數據特性一樣,通常使用抽象數據類型描述數據結構,將線性表、樹、圖等數據結構分別定義為抽象數據類型,每種抽象數據類型描述一種數據結構的邏輯特性和操作,與該數據結構在計算機內的存儲及實現無關。
抽象數據類型是軟件模塊化設計思想的重要手段。一個抽象數據類型是描述一種特定功能軟件的基本模塊,由各種基本模塊可組織和構造起來一個龐大的軟件系統。