資料結構基礎知識

2021-07-11 15:39:47 字數 2060 閱讀 7273

簡單的說,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。

描述一類非數值計算問題的數學模型不再是數學方程,而是諸如表、樹和圖之類的資料結構。

"資料結構"的研究不僅涉及到計算機硬體(特別是編碼理論、儲存裝置和訪問方法等)的研究範圍,而且和計算機軟體的研究有著更密切的關係,無論是編譯程式還是作業系統,都涉及到資料元素在儲存器中的分配問題。在研究資訊檢索時,也必須要考慮到如何組織資料,以便查詢和訪問資料元素更為方便。因此,可以認為"資料結構"是介於數學、計算機硬體和計算機軟體三者之間的一門核心課程。

在電腦科學中,"資料結構"不僅是一般程式設計(特別是非數值計算機的程式設計)的基礎,而且是設計和實現編譯程式、作業系統、資料庫系統及其他系統程式和大型應用程式的重要基礎。

基本概念和術語

資料是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。

資料元素是資料的基本單位,在計算機中通常作為乙個整體進行考慮和處理。有時,乙個資料元素可由若干個資料項組成,例如,一本書的數目資訊為乙個資料元素,而書目資訊中的每一項(如書名、作者名等)為乙個資料項。

資料項是資料的不可分割的最小單位。

資料物件是性質相同的資料元素的集合,是資料的乙個子集。

資料結構是相互之間存在一種或多種特定關係的資料元素的集合。

在任何問題中,資料元素都不是孤立存在的,而是它們之間存在著某種關係,這種資料元素相互之間的關係稱為

結構

根據資料元素之間關係的不同特性,通常有下列4類基本結構:

集合:結構中的資料元素之間除了"同屬於乙個集合"的關係外,別無其他關係;

線性結構:結構中的資料元素之間存在乙個對乙個的關係;

樹形結構:結構中的資料元素之間存在乙個對多個的關係;

圖狀結構或網狀結構:結構中的資料元素之間存在多個對多個的關係。

資料結構的形式定義為:

資料結構是乙個二元組 data_structure(d,s)其中:d是資料元素的有限集,s是d上關係的有限集。

結構定義中的"關係"描述的是資料元素之間的邏輯關係,因此又稱為資料的邏輯結構。

資料結構在計算機中的表示(又稱為映像)稱為資料的物理結構,又稱為儲存結構。它包含資料元素的表示和關係的表示。

資料元素之間的關係在計算機中有兩種不同的表示方法:順序映像和非順序映像,並由此得到不同的儲存結構:順序儲存結構和鏈式儲存結構。

資料型別時乙個值的集合和定義在這個值集上的一組操作的總稱。

按"值"的不同特性,高階程式語言中的資料型別可分為兩類:一類是非結構的原子型別,另一類是結構型別。

抽象資料型別(adt)是指乙個數學模型以及定義在該模型上的一組操作。

抽象資料型別按其值的不同特性,可以分為如下3中型別

原子型別:屬於原子型別的變數的值是不可分解的。

固定聚合型別:屬於該型別的變數,其值由確定數目的成分按某種結構組成。如:複數是由兩個實數依次確定的次序關係構成。

可變聚合型別:和固定聚合型別相比較,構成可變聚合型別"值"的成分的數目不確定。、

多形資料型別:是指其值的成分不確定的資料型別。

演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作;此外,乙個演算法還具有下列5個重要特性。

有窮性:乙個演算法必須總是(對任何合法的輸入值)在執行有窮步之後結束,且每一步都可在有窮時間內完成。

確定性:演算法中的每一條指令必須有確切的含義,讀者理解時不會產生二義性。並且,在任何條件下,演算法只有唯一的一條執行路徑,即對於相同的輸入只能得到相同的輸出。

可行性:乙個演算法是能行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現的。

輸入:乙個演算法有零個或多個的輸入,這些輸入取自於某個特定的物件的集合。

輸出:乙個演算法有乙個或多個輸出,這些輸出時同輸入有著某些特定關係的量。

演算法設計要求:

正確性--------可讀性---------健壯性-----------效率與低儲存量需求。

時間複雜度即求所執行和迴圈的次數

資料結構基礎知識

時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...

資料結構基礎知識

一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...

資料結構基礎知識

1.鍊錶和陣列的區別 2.排序演算法 3.雜湊表原理,三個解決衝突的方式,雜湊函式的選擇,常用的雜湊函式 6.kmp 8.n 3 的空間用1 3的模板鋪滿,多少種方法?10.找出2000記錄 現最多前10條記錄 12.哈夫曼樹 p209 13.二維字首和 19.1千萬資料去重 21.二叉樹兩個節點的...