考試階段:復試 科目滿分值:
100
考試科目:數據結構及算法 科目代碼:/
考試方式:閉卷筆試考試時長:
180分鐘
科目的總體要求
數據結構及算法是區(qū)塊鏈工程專業(yè)的核心必修課程,要求學生掌握各種基本數據結構的邏輯結構、存儲結構、基本操作的算法思想和算法實現, 掌握實際數據處理中常用的排序算法和數據查找算法,以及不同的排序算法之間的性能比較,不同查找算法對查找速度的影響情況。并能夠應用高級語言編寫算法(C/C++/Java)。
建立有關數據結構最基本的概念,包括數據的邏輯結構、存儲結構和算法,算法分析的基本概念與基本方法。
掌握線性表的基本概念以及兩種存儲結構(順序和鏈式)的構造原理,掌握在各種存儲結構下對線性表進行的基本操作的算法設計。
掌握堆棧和隊列的基本概念與特征,掌握在兩種存儲結構下如何對堆棧和隊列進行插入和刪除等操作,以及利用堆棧與隊列解決實際問題的基本方法。
掌握數組的基本概念,物理結構和基本操作的實現
充分了解二叉樹型結構的邏輯特征,掌握順序和鏈式存儲結構的構造原理,能夠熟練地利用常用的三種遍歷方法(遞歸和非遞歸實現),掌握利用二叉樹的遍歷操作解決實際問題的方法,掌握二叉樹的其它相關的操作算法。掌握樹的各種存儲結構和相關的操作算法。
充分了解圖的邏輯結構的特點,掌握常用的兩種存儲方法(鄰接矩陣和鄰接鏈表),掌握最小生成樹(Prim算法和Kruskal算法)、最短路徑的具體求解過程。
充分了解各種順序文件的結構與相應的查找方法;了解各種查找算法之間時空效率的差異;掌握二叉排序樹的建立以及相關算法,平衡二叉樹的創(chuàng)建過程;比較各種查找方法的性能。
充分了解各種排序方法的排序特點、排序過程和算法實現,對于任意給出的數據元素序列,能夠熟練地采用指定排序方法進行排序,并且能夠對每一種排序方法排序過程中所進行的元素之間的比較次數、相應排序算法的時間、空間、排序的穩(wěn)定性等性能進行簡單分析。
考核內容與考核要求
1、基礎知識
1)數據結構的基本概念,數據的邏輯結構、存儲結構。
2)算法的定義、算法的基本特性以及算法分析的基本概念。
2、線性表
1)線性關系、線性表的定義,線性表的基本操作。
2)線性表的順序存儲結構與鏈式存儲結構(包括單鏈表、循環(huán)鏈表和雙向鏈表)的構造原理。在以上兩種存儲結構上對線性表實施的最主要的操作(包括三種鏈表的建立、插入和刪除、檢索等)的算法設計、實現和復雜性分析。
3、堆棧與隊列
1)堆棧與隊列的基本概念、基本操作。
2)堆棧與隊列的順序存儲結構與鏈式存儲結構的構造原理。
3)在不同存儲結構上對堆棧與隊列實施插入與刪除等基本操作對應的算法設計、實現和復雜性分析。
4)堆棧與隊列的應用算法。
4、數組
1)數組的概念、多維數組的實現。
2)多維數組元素的定位算法。
5、樹與二叉樹
1)樹的定義和性質。
2)二叉樹的概念、性質。
3)二叉樹的各種存儲方式及其特點。
4)遍歷二叉樹及其應用。
5)樹和二叉樹的轉換。
6、圖
1)圖的定義,基本概念,圖的分類,常用名詞術語。
2)圖的鄰接矩陣存儲方法、鄰接表存儲方法的構造原理。
3)圖的遍歷操作及連通性問題。
4)最小生成樹,最短路徑。
7、查找
1)靜態(tài)查找表的順序查找算法、二分查找算法和分塊查找算法。
2)動態(tài)查找表的二叉查找樹、平衡二叉樹。
8、內排序
1)排序的基本概念,排序方法的分類。
2)插入排序法(含折半插入排序法和希爾排序)、選擇排序法(含堆排序)、冒泡排序法、快速排序法、歸并排序。各種排序方法排序的原理、規(guī)律和特點,各種排序算法的時空復雜度的簡單分析。
題型結構
考試包含多種題型:填空題、選擇題、綜合題和算法編寫題等。
其它要求
具體考試時間以《準考證》為準。