在計算機科學中,數(shù)據(jù)結構是一門研究非數(shù)值計算的程序設計問題中計算機的操作對象以及它們之間的關系和運算等的學科,而且確保經(jīng)過這些運算后所得到的新結構仍然是原來的結構類型。“數(shù)據(jù)結構”作為一門獨立的課程在國外是從1968年才開始設立的。這里面涉及到兩個問題信息的表示,信息的處理。因此,為了編寫出一個“好”的程序,必須分析待處理的對象的特征及各對象之間存在的關系,這就是數(shù)據(jù)結構這門課所要研究的問題。
什么是數(shù)據(jù)結構
在計算機科學中,數(shù)據(jù)結構是研究計算機的操作對象(數(shù)據(jù)元素),它們之間的關系以及非數(shù)值計算的編程問題中的運算,并保證這些運算后得到的新結構仍然是原來的結構類型的一門學科。“數(shù)據(jù)結構”作為一門獨立的課程,在國外是1968年才開設的。1968年,美國的Don O. Knut教授開創(chuàng)了數(shù)據(jù)結構的最初體系,他的著作《計算機編程技巧》第一卷《基本算法》是第一本系統(tǒng)闡述數(shù)據(jù)的邏輯結構、存儲結構和運算的書籍?!稊?shù)據(jù)結構》是計算機專業(yè)的一門綜合性專業(yè)基礎課。數(shù)據(jù)結構是介于數(shù)學、計算機硬件和計算機軟件之間的一門核心課程。課程數(shù)據(jù)的內(nèi)容不僅是一般程序設計(尤其是非數(shù)值程序設計)的基礎,也是設計和實現(xiàn)編譯器、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等系統(tǒng)程序的重要基礎。計算機是研究計算機對信息的表達和處理的科學。這里涉及到兩個問題:信息表征和信息處理。信息的表示和組織直接關系到信息處理程序的效率。隨著計算機的普及,信息量的增加,信息范圍的擴大,許多系統(tǒng)程序和應用程序規(guī)模龐大,結構復雜。因此,為了編寫一個“好”的程序,我們必須分析要處理的對象的特征以及它們之間的關系,這是數(shù)據(jù)結構課程要研究的問題。眾所周知,計算機程序是處理信息的。大多數(shù)情況下,這些信息并不是無組織的,信息(數(shù)據(jù))往往有一個重要的結構關系,這就是數(shù)據(jù)結構的內(nèi)容。數(shù)據(jù)結構直接影響算法的選擇和效率。計算機在解決一個具體問題時,大致需要經(jīng)歷以下幾個步驟:首先從具體問題中抽象出一個合適的數(shù)學模型,然后設計一個算法()來求解數(shù)學模型,最后編寫一個程序,進行測試和調(diào)整,直到得到最終的解。求數(shù)學模型的本質(zhì)是分析問題,從中提取操作對象,找出這些操作對象之間的關系,然后用數(shù)學語言描述出來。算法與數(shù)據(jù)結構密切相關,所有的算法都依附于特定的數(shù)據(jù)結構,直接關系到算法的選擇和效率。操作由計算機完成,因此需要設計相應的插入、刪除和修改算法。也就是說,數(shù)據(jù)結構還需要給出每個結構類型定義的各種運算的算法。數(shù)據(jù)是客觀事物的符號化表示。在計算機科學中,它是指可以輸入計算機并由計算機程序處理的所有符號。元素是數(shù)據(jù)的基本單位,在計算機程序中通常被認為是一個整體。一個數(shù)據(jù)元素由幾個數(shù)據(jù)項組成。數(shù)據(jù)項是最小的不可分割的數(shù)據(jù)單位。有兩種類型的數(shù)據(jù)元素:一種是不可分的原子數(shù)據(jù)元素,如整數(shù)“5”和字符“n”,另一種是由多個支付組成的數(shù)據(jù)元素,每個支付稱為一個數(shù)據(jù)項。例如,描述學生信息的數(shù)據(jù)元素可以由以下六個數(shù)據(jù)項組成。其中,出生日期可以由“年”、“月”、“日”三個數(shù)據(jù)項組成,作為組合項稱為“出生日期”,其他不可分的數(shù)據(jù)項為原子項。關鍵字是指可以識別一個或多個數(shù)據(jù)元素的數(shù)據(jù)項。如果能唯一識別,則稱為“一級”關鍵詞,否則稱為“二級”關鍵詞。數(shù)據(jù)是具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集。數(shù)據(jù)可以是有限的,也可以是無限的。數(shù)據(jù)處理是指對數(shù)據(jù)進行搜索、插入、刪除、合并、排序、計數(shù)和簡單計算的操作過程。在早期,計算機主要用于科學和工程計算。80年代以后,計算機主要用于數(shù)據(jù)處理。據(jù)有關統(tǒng)計,現(xiàn)在計算機用于數(shù)據(jù)處理的時間比例達到80%以上。隨著時間的推移和計算機應用的進一步普及,計算機用于數(shù)據(jù)處理的時間比例必將進一步增加。
常用的數(shù)據(jù)結構有哪幾種
數(shù)據(jù)元素之間的關系叫做結構。有一個