數據結構
發展歷程
「數據結構」作為一門獨立的課程在國外是從1968年才開始設立的。1968年美國唐•歐•克努特教授開創了數據結構的最初體系,他所著的《電腦程式設計技巧》第一卷《基本算法》是第一本較系統地闡述數據的邏輯結構和存儲結構及其操作的著作。「數據結構」在計算機科學中是一門綜合性的專業基礎課。數據結構是介於數學、計算機硬體和計算機軟體三者之間的一門核心課程。數據結構這一門課的內容不僅是一般程序設計(特別是非數值性程序設計)的基礎,而且是設計和實現編譯程序、作業系統、資料庫系統及其他系統程序的重要基礎。
各種定義
數據結構在計算機科學界至今沒有標準的定義。個人根據各自的理解而有不同的表述方法:
SartajSahni在他的《數據結構、算法與應用》一書中稱:「數據結構是數據對象,以及存在於該對象的實例和組成實例的數據元素之間的各種聯繫。這些聯繫可以通過定義相關的函數來給出。」他將數據對象(dataobject)定義為「一個數據對象是實例或值的集合」。
CliffordA.Shaffer在《數據結構與算法分析》一書中的定義是:「數據結構是ADT(抽象數據類型AbstractDataType)的物理實現。」
LobertL.Kruse在《數據結構與程序設計》一書中,將一個數據結構的設計過程分成抽象層、數據結構層和實現層。其中,抽象層是指抽象數據類型層,它討論數據的邏輯結構及其運算,數據結構層和實現層討論一個數據結構的表示和在計算機內的存儲細節以及運算的實現。
一般認為,一個數據結構是由數據元素依據某種邏輯聯繫組織起來的。對數據元素間邏輯關係的描述稱為數據的邏輯結構;數據必須在計算機內存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據上執行的運算才有意義。
具體分類
⑴集合結構。該結構的數據元素間的關係是「屬於同一個集合」。
線性結構
⑵線性結構。該結構的數據元素之間存在著一對一的關係。 圖形結構⑶樹型結構。該結構的數據元素之間存在著一對多的關係。⑷圖形結構。該結構的數據元素之間存在著多對多的關係,也稱網狀結構
相關詞條
| 算法 | 編程 | 遍歷 |
參考
參考文獻
《電腦程式設計技巧》,《數據結構、算法與應用》,《數據結構與算法分析》,《數據結構與程序設計》