《數據結構》部分
(一)緒論
1.識記:(1)數據結構的基本概念:數據、數據元素、數據項、數據對象、數據結構;(2)根據數據元素之間關系的不同特性通常有哪四種基本結構;(3)抽象數據類型的概念;(4)算法、算法的時間復雜度和空間復雜度的定義;
2.理解:(1)算法的時間復雜度的分析;(2)選擇合適的數據結構是解決應用問題的關鍵步驟;
3.運用:對于一般算法能分析出其時間復雜度。
(二)線性表
1.識記:(1)線性結構的特點;(2)線性表的抽象數據類型;(3)鏈表中的相關概念:頭指針、頭結點、首結點、尾結點、尾指針;
2.理解:(1)線性表的順序表示和實現,特別是插入、刪除算法的實現,并分析其時間復雜度;(2)線性表的鏈式表示和實現,特別是建表、插入、刪除和查找算法的實現,并分析其時間復雜度;(3)鏈表如何表示線性表中元素之間的邏輯關系;(4)單鏈表、雙向鏈表、循環(huán)鏈表的區(qū)別;(5)順序表和鏈表的優(yōu)缺點;
3.運用:(1)利用順序表的結構特征設計算法解決簡單的應用問題;(2)利用鏈表的結構特征設計算法解決簡單的應用問題。
(三)棧和隊列
1.識記:(1)棧的相關概念:棧、棧頂、棧底、空棧等;(2)隊列的相關概念:隊、隊頭、隊尾等;(3)循環(huán)隊列的定義。
2.理解:(1)棧和隊列與線性表的異同;(2)棧的邏輯結構特征;(3)順序棧的實現,特別是進棧和出棧算法的實現;(4)隊列的邏輯結構特征;(5)鏈隊列的出隊、入隊算法的實現;(6)順序隊列(主要是循環(huán)隊列)的出隊、入隊算法的實現,溢出的概念及其隊空、隊滿的判定條件;(7)棧和隊列的特點,什么樣的情況下能夠使用?;蜿犃?。
3.運用:(1)利用棧的結構特征設計算法解決簡單的應用問題;(2)利用隊列的結構特征設計算法解決簡單的應用問題。
(四)串
1.識記:(1)串的定義;(2)串的相關概念:長度、子串、空串、位置等。
2.理解:(1)串與線性表的區(qū)別;(2)串的抽象數據類型;(3)串的定長順序存儲方式的算法實現;(4)串的模式匹配算法,特別是KMP算法。
3.運用:改進的KMP算法。
(五)樹和二叉樹
1.識記:(1)樹的定義和相關術語;(2)樹的邏輯結構特征;(3)二叉樹的定義;(4)最優(yōu)二叉樹(赫夫曼樹)的相關概念。
2.理解:(1)樹的三種表示法;(2)二叉樹的性質;(3)二叉樹的順序存儲結構和鏈式存儲結構;(4)二叉樹的三種遍歷算法及其實現:先序遍歷、中序遍歷、后序遍歷,并確定三種遍歷所得到的相應的結點訪問序列;(5)二叉樹線索化的目的及實質;(6)樹和森林與二叉樹之間的轉換;(7)赫夫曼樹算法的思想。
3.運用:(1)根據給定的葉子結點及其權值構造出相應的赫夫曼樹;(2)根據赫夫曼樹構造對應的赫夫曼編碼。
(六)圖
1.識記:(1)圖的定義與術語;(2)圖的邏輯結構特征;(3)生成樹和最小生成樹的相關概念;(4)最短路徑的含義;(5)關鍵路徑的含義。
2.理解:(1)圖的鄰接矩陣和鄰接表兩種存儲結構算法的實現;(2)根據應用問題的特點和要求選擇合適的存儲結構;(3)連通圖及非連通圖的深度優(yōu)先搜索和廣度優(yōu)先搜索算法的實現及時間分析;(4)最小生成樹的兩種算法:Prim算法和Dijkstra算法的基本思想、時間性能及其各自的特點;(5)拓撲排序的基本思想和步驟;(6)關鍵路徑算法的實現;(7)求單源最短路徑的Dijkstra算法的基本思想和時間性能。
3.運用:(1)對給定的連通圖,根據Prim和Kruskal算法構造出最小生成樹;(2)對給定的有向圖,若拓撲序列存在,則寫出一個或多個拓撲序列;(3)在AOE網中,求出活動的最早開始時間和最晚開始時間,得到關鍵活動,求出關鍵路徑;(4)對于給定的有向圖,根據Dijkstra算法構造出單源最短路徑。
(七)查找
1.識記:(1)查找表以及相關概念;(2)二叉排序樹的相關概念;(3)哈希表的相關概念。
2.理解:(1)順序查找、二分查找的算法實現和查找效率分析;(2)二叉排序樹的插入、刪除、建立和查找算法的實現及效率分析;(3)哈希表的構造方法和處理沖突的方法。
3.運用:哈希表查找方法的應用。