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