樹和二叉樹:這一章中我們從順序式的數據結構,轉向層次式的數據結構,要掌握樹、二叉樹的各種性質、樹和二叉樹的不同存儲結構、森林、樹和二叉樹之間的轉換、線索化二叉樹、二叉樹的應用(二叉排序樹、平衡二叉樹和Huffman樹),重點要熟練掌握的,是森林、樹以及二叉樹的前中后三種遍歷方式,要能進行相應的算法設計。這一部分是數據結構考題歷來的重點和難點,復習時要特別關注。一些常見的選擇題考點包括:滿二叉樹、完全二叉樹節點數的計算,由樹、二叉樹的示意圖給出相應的遍歷序列,依據二叉樹的遍歷序列還原二叉樹,線索化的實質,計算采用不同的方法線索化后二叉樹剩余空指針域的個數,平衡二叉樹的定義、性質、建立和四種調整算法以及回溯法相關的問題。常見的綜合應用題考點包括:二叉樹的遍歷算法,遍歷基礎上針對二叉樹的一些統計和操作(比如結點數統計、左右子樹對換等等),判斷某棵二叉樹是否二叉排序樹,以上這些都要求能用遞歸的和非遞歸的算法解決,特別要重視非遞歸的算法,線索化后二叉樹的遍歷算法,如查找某結點線索化后的前驅或后繼結點的算法以及給出Huffman編碼等等。
圖:在這一章中需要識記的是圖以及基于圖的各種定義,存儲方式。要熟練掌握圖的深度遍歷和廣度遍歷算法,這是用圖來解決應用問題時常用的算法基礎。需要掌握基于圖的多個算法,能夠以手工計算的方式在一個給定的圖上執行特定的算法求解問題。常見的應用問題直接給出或經過抽象,會成為下列問題:最小生成樹求解(PRIM算法和KRUSKAL算法,兩種方法思想都很簡單,但要注意不要混淆這兩種方法),拓撲排序問題(這里會用到數組實現的鏈表,可以注意一下),關鍵路徑問題(數據結構的較大難點,要把概念理解透,能做出表格找出關鍵路徑),最短路徑問題(有重要的應用背景,也是貪心法不多的能給出最優解的典型問題之一)。
查找:這一章,需要識記關鍵字、主關鍵字、次關鍵字的含義;靜態查找與動態查找的含義及區別;平均查找長度ASL的概念念及在各種查找算法中的計算方法和計算結果,特別是一些典型結構的ASL值,B-樹的概念和基本操作沖突解決方法的選擇和沖突處理過程的描述,B+樹的概念(新增考點),特別要注意B-樹和B+樹概念的對比,以及Hash表相關的概念。要熟練掌握順序表、鏈表、二叉樹上的查找方法,特別要注意順序查找、二分查找的適用條件(比如鏈表上用二分查找就不合適)和算法復雜度。
排序:2012最新的大綱將去年的內部排序范圍擴展為排序,排序既是重點,又是難點。排序算法眾多,今年大綱還加上了外部排序,總共10種,各種不同算法還有相應的一些概念定義需要記住。選擇題常見的問題包括:給定數列要求給出某種特定排序方法運行一輪后的排序結果,或者給出初始數列和一輪排序結果要求選擇采用的排序算法,給定時間、空間復雜度要求以及數列特征要求選擇合適的排序算法等等。如果排序這一考點出現在綜合應用題中則常與數組結合來考查。
參考書建議大家用清華嚴蔚民版的,有助于建立知識體系,并且講的比較通透。數據結構的復習要緊扣參考書,把書認真看幾遍,深入理解大綱相關的知識點。