《數據結構》課程考試大綱
一、考試科目概述
數據結構是計算機程序設計的重要理論技術基礎,《數據結構》課程是一門專業基礎課。要求考生比較系統地理解數據結構的基本概念和基本知識,掌握表、棧、隊列、樹和圖等數據結構的基本特徵和在計算機上實現的方法,要求考生具有一定的抽象思維能力、邏輯推理能力、綜合運用所學的知識分析問題和解決問題的能力。
二、考試內容
第 x 章 (名稱) |
專題(名稱) | 知識與技能考覈點 |
---|---|---|
第一章 緒論 | 數據結構基本概念和術語, 算法、算法的描述和算法分析。 |
(1) 瞭解非數值問題的數學模型是表、樹和圖之類的數據結構 (2) 理解數據、數據元素、數據對象、數據結構和數據類型的定義 (3) 掌握數據的邏輯結構和存儲結構及其種類;算法的重要特徵等 (4) 會根據語句的最大頻度計算算法的時間複雜度 |
第二章 線性表 | 線性表的定義、線性表的邏輯結構、 線性表的順序存儲結構和鏈式存儲結構, 單向鏈表、循環鏈表和雙向鏈表, 一元多項式的表示及相加 |
(1) 瞭解線性表的定義和線性結構的特點。 (2) 理解線性表的順序存儲和鏈式存儲,理解數組與單鏈表表示表的優缺點。 (3) 掌握順序表中數據元素的 存儲位置的計算,順序表、單向鏈表、循環鏈表和雙向鏈表的 查找、插入、刪除 等有關操作。 (4) 會用單鏈表編寫簡單操作算法。 (5) 能夠從 時間 和 空間複雜度 的角度綜合比較兩種存儲結構的 特點及適用場合。 |
第三章 棧和隊列 | 棧的定義、棧的表示和實現; 隊列的定義、隊列的表示和實現,鏈隊列、循環隊列。 |
(1) 瞭解棧和隊列的定義 (2) 理解線性表、棧和隊列特點及區別,棧對實現遞歸過程的作用 (3) 掌握順序棧、鏈棧的入棧和出棧操作,順序隊列、鏈隊列的入隊和出隊操作,棧和隊列的空和滿的判斷。 |
第四章 樹和二叉樹 | 樹的結構定義和基本操作、二叉樹的定義、 二叉樹的性質、二叉樹的存儲結構、遍歷二叉樹,樹和森林、樹的存儲結構、森林與二叉樹的轉換、樹的遍歷,最優二叉樹和哈夫曼編碼。 |
(1) 瞭解樹的定義和二叉樹的定義 (2) 理解二叉樹的性質、二叉樹的存儲結構 (3) 掌握遍歷二叉樹的方法、森林與二叉樹的轉換、最優二叉樹的構造和哈夫曼編碼 (4) 會利用 二叉樹的先根、中根和後根遍歷 解決有關二叉樹的應用問題,會採用二叉鏈表存儲結構編寫與二叉樹簡單遞歸的算法 |
第五章 圖 | 圖的定義和術語、圖的存儲結構:鄰接矩陣和鄰接表, 圖的遍歷:深度優先搜索和廣度優先搜索,無向網的最小生成樹,有向網的最短路徑。 |
(1) 瞭解圖的定義和術語,生成樹和最小生成樹、最短路徑的概念 (2) 理解鄰接矩陣中元素的含義和鄰接表中結點的含義 (3) 掌握 深度優先搜索 和 廣度優先搜索 算法思想 (4) 會用 Prim算法 和 Kruskal算法 手工構造 無向網的最小生成樹,會找出 有向網任意頂點間的最短路徑。 |
第六章 查找 | 靜態查找表:順序查找、二分查找 和分塊查找; 動態查找表:二叉排序樹;哈希查找、哈希函數的構造方法和處理衝突的方法 |
(1) 瞭解順序查找、二分查找 和分塊查找的概念,以及二叉排序樹、哈希查找等概念。 (2) 掌握二叉排序樹的查找、插入和刪除操作算法思想。 (3) 掌握 哈希函數的構造方法和處理衝突的方法,會用哈希函數、加上 開放地址法或拉鍊法建立哈希表。 |
第七章 內部排序 | 直接插入排序、希爾排序、快速排序、簡單選擇排序、堆排序、歸併排序和基數排序。各種內部排序方法的比較。 | (1) 瞭解 排序算法的穩定性問題 (2) 理解直接插入排序、希爾排序、冒泡排序、快速排序、簡單選擇排序、堆排序、歸併排序和基數排序的基本思想。 (3) 會寫出排序執行過程,能夠對各種排序算法進行分析比較。 |
三、考試方式與試卷結構
1.考試方式:閉卷,筆試
2.試卷分數:滿分150分
3.考試時間:120分鐘
4.題型比例:
(1) 填空題:30%;
(2) 選擇題:30%;
(3) 判斷題:10%;
(4) 應用題:20%;
(5) 算法題:10%。可以是算法閱讀、算法填空、算法改錯和算法編寫等多種形式。
5.命題的指導思想和原則:
全面考查學生對本課程的基本原理、基本概念和主要知識點學習、理解和掌握的情況。命題原則:題目數量多、份量小,範圍較全面,最基本的知識一般要佔60%左右,一般難度試題的題目要佔25%左右,較難的題目要佔15%左右。總體客觀性的題目佔70%左右。適當壓縮大題目在總的考分中所佔的比例。
四、參考書目
《數據結構(C語言版)》,ISBN: 9787302147510,嚴蔚敏、吳偉民,清華大學出版社。