一.適用的招生專業(yè)
計(jì)算機(jī)科學(xué)與技術(shù);計(jì)算機(jī)應(yīng)用;信息科學(xué)與技術(shù);信息工程等。
二.考試的基本要求
要求考生系統(tǒng)地理解數(shù)據(jù)結(jié)構(gòu)的基本概念,掌握各種基本數(shù)據(jù)結(jié)構(gòu)的定義和實(shí)現(xiàn),掌握各種基本算法。要求考生具有抽象思維能力、邏輯推理能力、和綜合運(yùn)用所學(xué)的知識分析問題和解決問題的能力。
1.理解有關(guān)數(shù)據(jù)結(jié)構(gòu)的基本概念,理解算法的基本概念,了解算法復(fù)雜度的一般計(jì)算方法。
2.掌握線性表的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn)以及應(yīng)用(含棧、隊(duì)列)。
3.掌握串的概念、物理結(jié)構(gòu)和基本操作(含KMP算法)的實(shí)現(xiàn)。
4.掌握數(shù)組、稀疏矩陣的概念、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),理解廣義表的基本概念。
5.掌握二叉樹的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),理解二叉樹、樹、森林之間的關(guān)系,掌握哈夫曼算法。
6.掌握圖的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),掌握圖的遍歷、連通性問題、關(guān)鍵路徑、最短路徑問題的相關(guān)算法。
7.掌握靜態(tài)表和動態(tài)表的查找算法和相關(guān)技術(shù)(折半查找、散列表、二叉排序樹、平衡二叉樹、B+、B-樹)。
8. 掌握內(nèi)排序的基本方法(選擇、插入、交換、快速、堆、歸并、基數(shù))。
9..理解外排序的基本技術(shù)(多路歸并、置換選擇、歸并)。
三.考試的方法和考試時(shí)間
考試為閉卷筆試,可以使用無字典和編程功能的電子計(jì)算器;考試時(shí)間為3小時(shí)。
四.考試的主要內(nèi)容與要求
1.?dāng)?shù)據(jù)結(jié)構(gòu)和算法的基本概念
了解數(shù)據(jù)結(jié)構(gòu)的基本概念,包括邏輯結(jié)構(gòu)、物理結(jié)構(gòu)的基本概念、兩者之間的區(qū)別與聯(lián)系。
了解算法的基本概念和性質(zhì)。
了解算法的復(fù)雜度的基本概念,并掌握對非遞歸代碼的復(fù)雜度計(jì)算的基本方法。
2.線性表
了解線性表的邏輯結(jié)構(gòu)定義。
掌握線性表的順序結(jié)構(gòu)實(shí)現(xiàn),以及順序結(jié)構(gòu)下的基本操作的實(shí)現(xiàn),并能寫出操作代碼。
掌握線性表的鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及鏈?zhǔn)浇Y(jié)構(gòu)下的基本操作的實(shí)現(xiàn),并能寫出操作代碼。
能夠設(shè)計(jì)針對順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)線性表的一般應(yīng)用問題的算法,并編寫算法代碼。
掌握棧的基本概念、棧的性質(zhì)。
掌握棧的順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及相應(yīng)的操作的實(shí)現(xiàn),能夠?qū)懗霾僮鞔a。
了解棧與遞歸的關(guān)系,能夠編寫遞歸算法,能夠?qū)⑦f歸算法轉(zhuǎn)換為非遞歸形式。
掌握棧的應(yīng)用方法,能夠運(yùn)用棧解決相關(guān)問題,并編寫出算法代碼。
掌握隊(duì)列的基本概念和性質(zhì)。
掌握隊(duì)列的順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及相應(yīng)操作的實(shí)現(xiàn),能夠?qū)懗霾僮鞔a。
3.串
了解串的概念,串與一般線性表的差別,以及串的常用物理實(shí)現(xiàn)。
掌握串的基本操作的實(shí)現(xiàn)。
掌握串的樸素模式匹配算法。
掌握改進(jìn)KMP算法的思想和步驟,能夠手工計(jì)算出模式串的nextval向量。
4.?dāng)?shù)組、稀疏矩陣和廣義表
了解多維數(shù)組的概念,以及多維數(shù)組的一維數(shù)組實(shí)現(xiàn)。
掌握多維下標(biāo)向一維下標(biāo)的換算算法,并能進(jìn)行手工計(jì)算。
掌握稀疏矩陣的三元組結(jié)構(gòu)。
掌握三元組結(jié)構(gòu)下的矩陣轉(zhuǎn)置算法。
掌握帶行向量的三元組結(jié)構(gòu)下的和矩陣乘法。
了解廣義表的概念。
5.樹和二叉樹
了解樹的定義和性質(zhì)。
了解二叉樹的概念。
掌握二叉樹的基本性質(zhì),并能夠進(jìn)行描述和證明。(包括深度與結(jié)點(diǎn)數(shù)的關(guān)系性質(zhì)、每層結(jié)點(diǎn)數(shù)性質(zhì)、結(jié)點(diǎn)數(shù)與最小深度的關(guān)系性質(zhì)、n2=n0-1性質(zhì)、完全二叉樹序號與結(jié)點(diǎn)關(guān)系性質(zhì))
掌握二叉樹的二叉鏈結(jié)構(gòu)的實(shí)現(xiàn)。
掌握二叉樹的前序遍歷、中序遍歷、后序遍歷和層次遍歷規(guī)則,能夠手工計(jì)算二叉樹的遍歷序。
掌握二叉樹的遍歷性質(zhì),能夠根據(jù)前序+中序或中序+后序還原出二叉樹。
掌握二叉樹的前序、中序和后序遞歸遍歷算法、前序、中序非遞歸遍歷算法,并能夠?qū)懗鏊惴ùa。
了解線索化二叉樹的概念、遍歷算法和線索化算法。
了解哈夫曼樹的概念。
掌握哈夫曼算法的思想和步驟,能夠手工計(jì)算哈夫曼樹。
了解哈夫曼編碼的概念,能夠手工計(jì)算哈夫曼編碼。
了解樹、森林和二叉樹的關(guān)系。
6.圖
了解圖的定義。
掌握圖的鄰接矩陣、鄰接表的實(shí)現(xiàn)方法。
掌握圖的深度優(yōu)先和廣度優(yōu)先遍歷算法,能夠手工計(jì)算圖的深度優(yōu)先遍歷序和廣度優(yōu)先遍歷序。
掌握圖的連通性問題的求解算法,包括生成樹/森林計(jì)算、最小生成樹計(jì)算(Prim算法和Kruskal算法)、強(qiáng)連通分量計(jì)算、關(guān)節(jié)點(diǎn)計(jì)算,并能夠進(jìn)行手 工計(jì)算。
掌握最小生成樹的MST性質(zhì),并能夠進(jìn)行描述和證明。
掌握關(guān)鍵路徑問題的求解算法,并能夠進(jìn)行手工計(jì)算。
掌握單源起點(diǎn)最短路徑算法(Dijkstra算法)和任兩點(diǎn)間最短路徑算法(Floyd算法),并能夠進(jìn)行手工計(jì)算。
7.查找
掌握靜態(tài)表的概念和折半查找算法,并能夠進(jìn)行手工計(jì)算。
掌握散列表的基本概念,散列函數(shù)的基本設(shè)計(jì)技巧。
掌握二叉排序樹的概念,以及二叉排序樹上的查找、插入、刪除算法,并能夠進(jìn)行手工計(jì)算。
掌握平衡二叉樹的概念,以及平衡二叉樹的插入和調(diào)整算法,并能夠進(jìn)行手工計(jì)算。
了解B-、B+樹的概念,以及B-樹的插入和刪除算法。
8.內(nèi)排序
掌握簡單排序法(選擇排序、插入排序、交換排序)的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握快速排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握堆排序的算法思想和步驟,能夠?qū)懗雠判蜻^程(建堆過程、排序過程)。
掌握歸并排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握基數(shù)排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
了解各種排序方法的特點(diǎn),能夠針對特定問題背景選擇適當(dāng)?shù)呐判蚍椒ā?BR> 9.★外排序
了解外排序與內(nèi)排序的區(qū)別和聯(lián)系。
了解多路歸并排序技術(shù)的思想。
了解置換-選擇排序技術(shù)的思想
了解多路歸并技術(shù)的思想。
五.試卷結(jié)構(gòu)
試卷滿分150分,全部為解答題。
六.主要參考書
嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)(C語言版).北京:清華大學(xué)出版社,2002
計(jì)算機(jī)科學(xué)與技術(shù);計(jì)算機(jī)應(yīng)用;信息科學(xué)與技術(shù);信息工程等。
二.考試的基本要求
要求考生系統(tǒng)地理解數(shù)據(jù)結(jié)構(gòu)的基本概念,掌握各種基本數(shù)據(jù)結(jié)構(gòu)的定義和實(shí)現(xiàn),掌握各種基本算法。要求考生具有抽象思維能力、邏輯推理能力、和綜合運(yùn)用所學(xué)的知識分析問題和解決問題的能力。
1.理解有關(guān)數(shù)據(jù)結(jié)構(gòu)的基本概念,理解算法的基本概念,了解算法復(fù)雜度的一般計(jì)算方法。
2.掌握線性表的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn)以及應(yīng)用(含棧、隊(duì)列)。
3.掌握串的概念、物理結(jié)構(gòu)和基本操作(含KMP算法)的實(shí)現(xiàn)。
4.掌握數(shù)組、稀疏矩陣的概念、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),理解廣義表的基本概念。
5.掌握二叉樹的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),理解二叉樹、樹、森林之間的關(guān)系,掌握哈夫曼算法。
6.掌握圖的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和基本操作的實(shí)現(xiàn),掌握圖的遍歷、連通性問題、關(guān)鍵路徑、最短路徑問題的相關(guān)算法。
7.掌握靜態(tài)表和動態(tài)表的查找算法和相關(guān)技術(shù)(折半查找、散列表、二叉排序樹、平衡二叉樹、B+、B-樹)。
8. 掌握內(nèi)排序的基本方法(選擇、插入、交換、快速、堆、歸并、基數(shù))。
9..理解外排序的基本技術(shù)(多路歸并、置換選擇、歸并)。
三.考試的方法和考試時(shí)間
考試為閉卷筆試,可以使用無字典和編程功能的電子計(jì)算器;考試時(shí)間為3小時(shí)。
四.考試的主要內(nèi)容與要求
1.?dāng)?shù)據(jù)結(jié)構(gòu)和算法的基本概念
了解數(shù)據(jù)結(jié)構(gòu)的基本概念,包括邏輯結(jié)構(gòu)、物理結(jié)構(gòu)的基本概念、兩者之間的區(qū)別與聯(lián)系。
了解算法的基本概念和性質(zhì)。
了解算法的復(fù)雜度的基本概念,并掌握對非遞歸代碼的復(fù)雜度計(jì)算的基本方法。
2.線性表
了解線性表的邏輯結(jié)構(gòu)定義。
掌握線性表的順序結(jié)構(gòu)實(shí)現(xiàn),以及順序結(jié)構(gòu)下的基本操作的實(shí)現(xiàn),并能寫出操作代碼。
掌握線性表的鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及鏈?zhǔn)浇Y(jié)構(gòu)下的基本操作的實(shí)現(xiàn),并能寫出操作代碼。
能夠設(shè)計(jì)針對順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)線性表的一般應(yīng)用問題的算法,并編寫算法代碼。
掌握棧的基本概念、棧的性質(zhì)。
掌握棧的順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及相應(yīng)的操作的實(shí)現(xiàn),能夠?qū)懗霾僮鞔a。
了解棧與遞歸的關(guān)系,能夠編寫遞歸算法,能夠?qū)⑦f歸算法轉(zhuǎn)換為非遞歸形式。
掌握棧的應(yīng)用方法,能夠運(yùn)用棧解決相關(guān)問題,并編寫出算法代碼。
掌握隊(duì)列的基本概念和性質(zhì)。
掌握隊(duì)列的順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn),以及相應(yīng)操作的實(shí)現(xiàn),能夠?qū)懗霾僮鞔a。
3.串
了解串的概念,串與一般線性表的差別,以及串的常用物理實(shí)現(xiàn)。
掌握串的基本操作的實(shí)現(xiàn)。
掌握串的樸素模式匹配算法。
掌握改進(jìn)KMP算法的思想和步驟,能夠手工計(jì)算出模式串的nextval向量。
4.?dāng)?shù)組、稀疏矩陣和廣義表
了解多維數(shù)組的概念,以及多維數(shù)組的一維數(shù)組實(shí)現(xiàn)。
掌握多維下標(biāo)向一維下標(biāo)的換算算法,并能進(jìn)行手工計(jì)算。
掌握稀疏矩陣的三元組結(jié)構(gòu)。
掌握三元組結(jié)構(gòu)下的矩陣轉(zhuǎn)置算法。
掌握帶行向量的三元組結(jié)構(gòu)下的和矩陣乘法。
了解廣義表的概念。
5.樹和二叉樹
了解樹的定義和性質(zhì)。
了解二叉樹的概念。
掌握二叉樹的基本性質(zhì),并能夠進(jìn)行描述和證明。(包括深度與結(jié)點(diǎn)數(shù)的關(guān)系性質(zhì)、每層結(jié)點(diǎn)數(shù)性質(zhì)、結(jié)點(diǎn)數(shù)與最小深度的關(guān)系性質(zhì)、n2=n0-1性質(zhì)、完全二叉樹序號與結(jié)點(diǎn)關(guān)系性質(zhì))
掌握二叉樹的二叉鏈結(jié)構(gòu)的實(shí)現(xiàn)。
掌握二叉樹的前序遍歷、中序遍歷、后序遍歷和層次遍歷規(guī)則,能夠手工計(jì)算二叉樹的遍歷序。
掌握二叉樹的遍歷性質(zhì),能夠根據(jù)前序+中序或中序+后序還原出二叉樹。
掌握二叉樹的前序、中序和后序遞歸遍歷算法、前序、中序非遞歸遍歷算法,并能夠?qū)懗鏊惴ùa。
了解線索化二叉樹的概念、遍歷算法和線索化算法。
了解哈夫曼樹的概念。
掌握哈夫曼算法的思想和步驟,能夠手工計(jì)算哈夫曼樹。
了解哈夫曼編碼的概念,能夠手工計(jì)算哈夫曼編碼。
了解樹、森林和二叉樹的關(guān)系。
6.圖
了解圖的定義。
掌握圖的鄰接矩陣、鄰接表的實(shí)現(xiàn)方法。
掌握圖的深度優(yōu)先和廣度優(yōu)先遍歷算法,能夠手工計(jì)算圖的深度優(yōu)先遍歷序和廣度優(yōu)先遍歷序。
掌握圖的連通性問題的求解算法,包括生成樹/森林計(jì)算、最小生成樹計(jì)算(Prim算法和Kruskal算法)、強(qiáng)連通分量計(jì)算、關(guān)節(jié)點(diǎn)計(jì)算,并能夠進(jìn)行手 工計(jì)算。
掌握最小生成樹的MST性質(zhì),并能夠進(jìn)行描述和證明。
掌握關(guān)鍵路徑問題的求解算法,并能夠進(jìn)行手工計(jì)算。
掌握單源起點(diǎn)最短路徑算法(Dijkstra算法)和任兩點(diǎn)間最短路徑算法(Floyd算法),并能夠進(jìn)行手工計(jì)算。
7.查找
掌握靜態(tài)表的概念和折半查找算法,并能夠進(jìn)行手工計(jì)算。
掌握散列表的基本概念,散列函數(shù)的基本設(shè)計(jì)技巧。
掌握二叉排序樹的概念,以及二叉排序樹上的查找、插入、刪除算法,并能夠進(jìn)行手工計(jì)算。
掌握平衡二叉樹的概念,以及平衡二叉樹的插入和調(diào)整算法,并能夠進(jìn)行手工計(jì)算。
了解B-、B+樹的概念,以及B-樹的插入和刪除算法。
8.內(nèi)排序
掌握簡單排序法(選擇排序、插入排序、交換排序)的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握快速排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握堆排序的算法思想和步驟,能夠?qū)懗雠判蜻^程(建堆過程、排序過程)。
掌握歸并排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
掌握基數(shù)排序的算法思想和步驟,能夠?qū)懗雠判蜻^程。
了解各種排序方法的特點(diǎn),能夠針對特定問題背景選擇適當(dāng)?shù)呐判蚍椒ā?BR> 9.★外排序
了解外排序與內(nèi)排序的區(qū)別和聯(lián)系。
了解多路歸并排序技術(shù)的思想。
了解置換-選擇排序技術(shù)的思想
了解多路歸并技術(shù)的思想。
五.試卷結(jié)構(gòu)
試卷滿分150分,全部為解答題。
六.主要參考書
嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)(C語言版).北京:清華大學(xué)出版社,2002