2012計算機考研大綱解析:數(shù)據(jù)結(jié)構(gòu)

字號:

2012年計算機統(tǒng)考大綱已經(jīng)公布,我們第一時間來解析一下計算機統(tǒng)考大綱數(shù)據(jù)結(jié)構(gòu)部分及其相關(guān)知識點:數(shù)據(jù)結(jié)構(gòu)占了45分,和計算機組成原理部分同一個比重,這足以體現(xiàn)計算機專業(yè)研究生選拔對數(shù)據(jù)結(jié)構(gòu)課程的要求之重。
    一、大綱變化
    2012年計算機統(tǒng)考的數(shù)據(jù)結(jié)構(gòu)部分大綱都是變動在第六部分的排序方面,具體如下:
    
2011年大綱 2012年大綱 變動
六、內(nèi)部排序 六、排序 將內(nèi)部排序范圍擴展為排序
(一) 排序的基本概念 (一) 排序的基本概念 無變化
(二) 插入排序 (二) 插入排序 無變化
1. 直接插入排序 2. 直接插入排序 無變化
2. 折半插入排序 3. 折半插入排序 無變化
(三) 起泡排序(bubble sort) (三) 起泡排序(bubble sort) 無變化
(四) 簡單選擇排序 (四) 簡單選擇排序 無變化
(五) 希爾排序(shell sort) (五) 希爾排序(shell sort) 無變化
(六) 快速排序 (六) 快速排序 無變化
(七) 堆排序 (七) 堆排序 無變化
(八) 二路歸并排序(merge sort) (八) 二路歸并排序(merge sort) 無變化
(九) 基數(shù)排序 (九) 基數(shù)排序 無變化
(十)外部排序 新增加
(十) 各種內(nèi)部排序算法的比較 (十一) 各種排序算法的比較 將內(nèi)部排序范圍擴展為排序
(十一) 內(nèi)部排序算法的應(yīng)用 (十二) 排序算法的應(yīng)用 將內(nèi)部排序范圍擴展為排序

    二、重難點解析和復(fù)習(xí)建議
    2012年的統(tǒng)考大綱對數(shù)據(jù)結(jié)構(gòu)的考查目標(biāo)定位為掌握數(shù)據(jù)結(jié)構(gòu)的基本概念、基本原理和基本方法,掌握數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)以及基本操作的實現(xiàn);能夠?qū)λ惴ㄟM行基本的時間復(fù)雜度和空間復(fù)雜度的分析;能夠運用數(shù)據(jù)結(jié)構(gòu)的基本原理和方法進行問題的分析求解,具備采用C、C++或JAVA語言設(shè)計程序與實現(xiàn)算法的能力。
    當(dāng)然,考生也不必因此而專門復(fù)習(xí)一遍C或C++程序設(shè)計,畢竟復(fù)習(xí)時間有限,而且數(shù)據(jù)結(jié)構(gòu)要求的重點在于算法設(shè)計的能力,而不是編寫代碼的能力,因此,只要能用類似偽代碼的形式把思路表達清楚就行,不用強求寫出一個沒有任何語法錯誤的程序。
    下面我們來解析一下知識點。
    線性表這一章里面的知識點不多,但要做到深刻理解,能夠應(yīng)用相關(guān)知識點解決實際問題。鏈表上插入、刪除節(jié)點時的指針操作是選擇題的一個常考點,諸如雙向鏈表等一些相對復(fù)雜的鏈表上的操作也是可以出現(xiàn)在綜合應(yīng)用題當(dāng)中的。
    棧、隊列和數(shù)組可以考查的知識點相比鏈表來說要多一些?;镜?,是棧與隊列FILO和FIFO的特點。比如針對棧FILO的特點,進棧出棧序列的問題常出現(xiàn)在選擇題中。其次,是棧和隊列的順序和鏈?zhǔn)酱鎯Y(jié)構(gòu),這里一個??键c是不同存儲結(jié)構(gòu)下棧頂指針、隊首指針以及隊尾指針的操作,特別是循環(huán)隊列判滿和判空的2種判斷方法。再次,是特殊矩陣的壓縮存儲,這個考點復(fù)習(xí)的重點可以放在二維矩陣與一維數(shù)組相互轉(zhuǎn)換時,下標(biāo)的計算方法,比如與對角線平行的若干行上數(shù)據(jù)非零的矩陣存放在一維數(shù)組后,各個數(shù)據(jù)點相應(yīng)的下標(biāo)的計算。這一章可能的大題點,在于利用堆?;蜿犃械奶匦?,將它們作為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),支持實際問題求解算法的設(shè)計,例如用棧解決遞歸問題,用隊列解決圖的遍歷問題等等。
    樹和二叉樹。這一章中我們從順序式的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)向?qū)哟问降臄?shù)據(jù)結(jié)構(gòu),要掌握樹、二叉樹的各種性質(zhì)、樹和二叉樹的不同存儲結(jié)構(gòu)、森林、樹和二叉樹之間的轉(zhuǎn)換、線索化二叉樹、二叉樹的應(yīng)用(二叉排序樹、平衡二叉樹和Huffman樹),重點要熟練掌握的,是森林、樹以及二叉樹的前中后三種遍歷方式,要能進行相應(yīng)的算法設(shè)計。這一部分是數(shù)據(jù)結(jié)構(gòu)考題歷來的重點和難點,復(fù)習(xí)時要特別關(guān)注。一些常見的選擇題考點包括:滿二叉樹、完全二叉樹節(jié)點數(shù)的計算,由樹、二叉樹的示意圖給出相應(yīng)的遍歷序列,依據(jù)二叉樹的遍歷序列還原二叉樹,線索化的實質(zhì),計算采用不同的方法線索化后二叉樹剩余空指針域的個數(shù),平衡二叉樹的定義、性質(zhì)、建立和四種調(diào)整算法以及回溯法相關(guān)的問題。常見的綜合應(yīng)用題考點包括:二叉樹的遍歷算法,遍歷基礎(chǔ)上針對二叉樹的一些統(tǒng)計和操作(比如結(jié)點數(shù)統(tǒng)計、左右子樹對換等等),判斷某棵二叉樹是否二叉排序樹,以上這些都要求能用遞歸的和非遞歸的算法解決,特別要重視非遞歸的算法,線索化后二叉樹的遍歷算法,如查找某結(jié)點線索化后的前驅(qū)或后繼結(jié)點的算法以及給出Huffman編碼等等。
    圖。在這一章中需要識記的是圖以及基于圖的各種定義,存儲方式。要熟練掌握圖的深度遍歷和廣度遍歷算法,這是用圖來解決應(yīng)用問題時常用的算法基礎(chǔ)。需要掌握基于圖的多個算法,能夠以手工計算的方式在一個給定的圖上執(zhí)行特定的算法求解問題。常見的應(yīng)用問題直接給出或經(jīng)過抽象,會成為下列問題:小生成樹求解(PRIM算法和KRUSKAL算法,兩種方法思想都很簡單,但要注意不要混淆這兩種方法),拓撲排序問題(這里會用到數(shù)組實現(xiàn)的鏈表,可以注意一下),關(guān)鍵路徑問題(數(shù)據(jù)結(jié)構(gòu)的較大難點,要把概念理解透,能做出表格找出關(guān)鍵路徑),短路徑問題(有重要的應(yīng)用背景,也是貪心法不多的能給出優(yōu)解的典型問題之一)。
    查找。這一章,需要識記關(guān)鍵字、主關(guān)鍵字、次關(guān)鍵字的含義;靜態(tài)查找與動態(tài)查找的含義及區(qū)別;平均查找長度ASL的概念念及在各種查找算法中的計算方法和計算結(jié)果,特別是一些典型結(jié)構(gòu)的ASL值,B-樹的概念和基本操作沖突解決方法的選擇和沖突處理過程的描述,B+樹的概念(新增考點),特別要注意B-樹和B+樹概念的對比,以及Hash表相關(guān)的概念。要熟練掌握順序表、鏈表、二叉樹上的查找方法,特別要注意順序查找、二分查找的適用條件(比如鏈表上用二分查找就不合適)和算法復(fù)雜度。
    排序。2012新的大綱將去年的內(nèi)部排序范圍擴展為排序,排序既是重點,又是難點。排序算法眾多,今年大綱還加上了外部排序,總共10種,各種不同算法還有相應(yīng)的一些概念定義需要記住。選擇題常見的問題包括:給定數(shù)列要求給出某種特定排序方法運行一輪后的排序結(jié)果,或者給出初始數(shù)列和一輪排序結(jié)果要求選擇采用的排序算法,給定時間、空間復(fù)雜度要求以及數(shù)列特征要求選擇合適的排序算法等等。如果排序這一考點出現(xiàn)在綜合應(yīng)用題中則常與數(shù)組結(jié)合來考查。
    參考書建議大家用清華嚴(yán)蔚民版的,有助于建立知識體系,并且講的比較通透。數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)要緊扣參考書,把書認真看幾遍,深入理解大綱相關(guān)的知識點。