資料結構820

2021-10-24 04:14:55 字數 3555 閱讀 9892

第二部分 線性表

第三部分 廣義表的基本概念、儲存結構和基本操作

第四部分 樹和二叉樹

第五部分 圖

第六部分 查詢

第七部分 排序

1. 資料結構及演算法的概念

資料(data):資料是對客觀事物的符號表示,是資訊的載體。

在電腦科學中資料指所有能夠被計算機識別的符號集合。

識別:輸入、儲存、處理、顯示、輸出。

符號:數字、字母、漢字、語音、圖形、影象。

資料元素(data element):是資料(集合)中的乙個「個體」,是資料結構中討論的基本單位

資料項(data item):是資料結構中討論的最小單位,資料元素可以是資料項的集合。

資料物件(data object):是具有相同性質的資料元素的集合,是資料的乙個子集。

資料結構:帶結構的資料元素的集合。

結構:所謂結構就是資料元素之間的關係,即描述資料元素之間的運算及運算規則。

資料結構包含:資料元素、資料元素之間的邏輯關係、邏輯關係在計算機中的儲存表示、以及所規定的操作這四部分。

2. 資料的邏輯結構和儲存結構

邏輯結構:邏輯結構是指資料元素之間客觀存在的關係,與資料在計算機中如何儲存無關,主要用於人們理解和交流、以及指導演算法的設計。

儲存結構(storage structure):資料的儲存結構也稱物理結構,指資料結構在計算機中的儲存表示,包括資料結構中元素的表示及元素間關係的表示。儲存結構主要用於指導演算法的實現。有三種基本的儲存結構,即順序儲存結構、鏈式儲存結構和雜湊儲存結構。

3. 演算法的定義及特性

演算法(algorithm):演算法是求解特定問題的步驟的有限序列。演算法由步驟組成,每乙個步驟表示乙個操作或任務。步驟序列是對問題求解過程的描述,按照步驟的順序,完成步驟所規定的任務,就可以求解特定的問題。

演算法可以用乙個三元組來描述:a=(s,d,r):

演算法有四個重要特性:

-有窮性:對於任意一組合法輸入值,在執行有窮步驟之後演算法一定能結束。

-確定性:在當前輸入資料下,演算法每步的任務是確切無二義性的,演算法下一步驟執行的順序也是確定的。

-可行性:演算法中的所有操作都必須足夠基本,都可以通過已經實現的基本操作運算有限次實現。

-功能性(輸入、輸出特性):演算法都是用作求解特定問題的,不解決問題的步驟序列不是演算法,即對任意合法的0或多個輸入,完成各步驟的任務,演算法所產生的1或多個輸出,就是對特定問題所求解的結果。

4. 演算法時間複雜度和空間複雜度的分析方法

演算法描述:

演算法效率:用依據該演算法編制的程式在計算機上執行所消耗的時間來度量。

時間複雜度:隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度。簡稱時間複雜度。——即基本操作(原操作)重複執行的次數的階數

t(n)=o(f(n))

常見的時間複雜度:

多項式階時間關係為:

指數時間的關係為:

o(2n)空間複雜度:演算法所需儲存空間的量度。

s(n)=o(f(n))

程式除了需要儲存空間來寄存本身所用指令、常數、變數和輸入資料外,也需要一些對資料進行操作的工作單元和儲存一些為實現計算所需資訊的輔助空間。

1. 線性表的定義

定義:乙個線性表是n個相同型別資料元素的有限序列。

特徵:

2. 線性表的基本操作及在順序儲存及鏈式儲存上的實現

線性表的基本操作:

線性表初始化操作:

銷毀線性表操作:

線性表清空操作:

線性表判空操作:

求線性表的長度操作:

-int list_size(listptr l)

取表中元素操作:

按值查詢操作:

插入操作:

刪除操作:

求前驅操作:

求後繼操作:

線性表的順序儲存結構:

順序表:

特點:

實現:可用c語言的一維陣列實現。

線性表的鏈式儲存結構:

特點:

3. 各種變形鍊錶(迴圈鍊錶、雙向鍊錶、帶頭結點的鍊錶等)的表示和基本操作的實現

4. 遞迴過程的特點及實現方法

5. 棧和佇列的基本概念;棧和佇列的順序儲存結構、鏈式儲存結構及其儲存特點

6. 棧和佇列的應用

7. 迴圈佇列的判滿、判空方法

8. 特殊矩陣的壓縮儲存1.樹與森林的基本概念

2. 樹與森林的儲存結構及遍歷

3. 二叉樹的定義及 6 大性質

4. 二叉樹的順序儲存與鏈式儲存結構

5. 二叉樹的先序、中序、後序三種遍歷方式的關係以及實現;層序遍歷的實現

6. 線索二叉樹的基本概念與構造方法

7. 樹與二叉樹的應用:二叉排序樹;二叉平衡樹;哈夫曼樹與哈夫曼編碼1. 圖的基本概念和術語

2. 圖的儲存結構:鄰接矩陣、鄰接表、逆鄰接表

3. 遍歷演算法:深度優先搜尋演算法和廣度優先搜尋演算法

4. 應用:最小生成樹;最短路徑,拓撲排序和關鍵路徑1. 查詢的基本概念;靜態查詢與動態查詢

2. 順序查詢、折半查詢、索引查詢

3. 雜湊查詢 雜湊函式的基本構造方法,解決位址衝突的基本策略

4. 各種查詢演算法的時間複雜度和空間複雜度1. 排序的基本概念

2. 插入排序

3. 簡單選擇排序

4. 希爾排序

5. 快速排序

6. 堆排序

7. 歸併排序

8. 基數排序

9. 排序演算法的比較

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...