校園

當前位置 /首頁/範文/校園/列表

計算機考研資料結構的複習要點

考生們在進行計算機考研的複習階段時,需要把資料結構的複習要點了解清楚。小編為大家精心準備了計算機考研資料結構的複習重點,歡迎大家前來閱讀。

計算機考研資料結構的複習要點

  計算機考研資料結構重點:二元樹

二元樹是資料結構中的重點內容,在這兩年的考試中也將二元樹作為重點內容來考查。二元樹這部分內容要求大家掌握二元樹的定義、性質、儲存結構、遍歷、線索化、森林和二元樹的轉換等內容。演算法的重點是二元樹的遍歷及其應用,這也是二元樹這部分的重點和難點。遍歷是二元樹各種操作的基礎,可以在遍歷過程中對結點進行各種操作。例如:求二元樹結點總數,建立二元樹,建立二元樹的儲存結構等。二元樹的很多演算法是在遍歷演算法基礎上改造完成的,這就要求大家在複習時,熟練掌握二元樹遍歷的遞迴和非遞迴演算法。

下面為大家介紹一下二元樹的幾種遍歷方法:

由二元樹的定義可知,一顆二元樹由根節點及左、右子樹三個基本部分組成,因此,只要依次遍歷這三部分,就可以遍歷整個二元樹。

1.先序遍歷

先序遍歷的遞迴過程為:若二元樹為空,遍歷結束。

(1)訪問根節點;

(2)先序遍歷根節點的左子樹;

(3)先序遍歷根節點的右子樹。

2.中序遍歷

中序遍歷的遞迴過程為:若二元樹為空,遍歷結束。否則,

(1)中序遍歷根節點的左子樹;

(2)訪問根節點;

(3)中序遍歷根節點的右子樹。

3.後序遍歷

後序遍歷的遞迴過程為:若二元樹為空,遍歷結束。否則,同濟大學四平路

(1)後序遍歷根節點的左子樹;

(2)後序遍歷根節點的右子樹;

(3)訪問根節點。

層次遍歷

二元樹的層次遍歷,是指從二元樹的第一層(根結點)開始,從上至下逐層遍歷,在同一層中,則按從左到右的順序對結點逐個訪問。在進行層次遍歷時,對一層結點訪問完後,再按照它們的訪問次序對各個結點的左孩子和右孩子順序訪問,這樣一層一層進行,先遇到的結點先訪問,這與佇列的操作原則比較吻合。因此,在進行層次遍歷時,可設定一個佇列結構,遍歷從二元樹的根結點開始,首先將根結點指標入佇列,然後從對頭取出一個元素,每取一個元素,執行下面兩個操作:

(1)訪問該元素所指結點;

(2)若該元素所指結點的左、右孩子結點非空,則將該元素所指結點的左孩子指標和右孩子指標順序入隊。

此過程不斷進行,當佇列為空時,二元樹的層次遍歷結束。

下面大家來看二元樹遍歷這部分在考試中常考題型

1.由二元樹的兩個遍歷序列的組合(先序序列和中序序列)、(中序序列和後序序列)、(層次序列和中序序列)構造該二元樹或求其他遍歷序列是一種常見的題型。需要注意的是已知二元樹的先序序列和後序序列不能唯一確定該二元樹。

2.以遍歷為基礎的二元樹演算法設計是考試的重點和難點。常見的試題有以下幾類:

(1)基於二元樹遍歷的遞迴演算法

這類題目的特點是直接根據三種遞迴演算法改寫,修改訪問語句來實現。例如:求二元樹的結點個數。

(2)基於二元樹層次遍歷的演算法

這類題目有求二元樹的高度,求二元樹最大寬度等。

(3)基於順序儲存的二元樹遍歷演算法

例如:求順序儲存的滿二元樹中序遍歷的非遞迴演算法。

(4)其他二元樹遍歷演算法

例如:左、右子樹交換等。

大家要重點掌握這些以遍歷為基礎的二元樹演算法題目,這就要求大家多做練習,通過習題訓練加深理解,掌握解題思路和技巧,提高解題能力。

另外,現在大家開始衝刺複習了,選擇一本涵蓋全面、與真題題型一致、題目難度和真題難度高度相近,並對這兩年的考試試題進行了詳細分析的全真模擬試題集,是此時衝刺的最佳幫手,可以幫助你查缺補漏,顯著提高應試能力。

  計算機考研暑期複習注意事項

(1)注重實際解題能力和技巧的提升。計算機專業考研時候的考察重點無疑在於考生解決問題的能力。對於知識點的熟練掌握只是基礎,是為實際解決問題提供跳板。在牢固掌握基礎知識的同時,對解體思路和方法進行提煉,並進一步學會在分析問題、解決問題的過程中靈活運用才是取得高分的關鍵。

(2)密切關注大綱變化。最新的考試大綱大約在8、9月份出臺,大綱出臺後需仔細研究新大綱的變化,並對自己的複習進度進行調整。在按照新大綱的變化調整複習的側重點的同時,要特別注意重視新增的考點。

(3)重視歷年真題。研究歷年真題,一方面可以對考題的`具體形式、各個題型的設定有一定了解,做到知己知彼;另一方面還可以對照真題把握老師的出題習慣與重點,並查詢自己的薄弱之處,進一步查漏補缺。

炎炎夏日,難免產生浮躁情緒,如果再遇上不會做的題難免心理急躁,更容易出錯。這就要求考生保持平和之心以及持之以恆的學習態度,把複習進度腳踏實地落到實處。

  計算機考研資料結構重難點及複習建議

一、重難點解析和複習建議

資料結構的考查目標定位為掌握資料結構的基本概念、基本原理和基本方法,掌握資料的邏輯結構、儲存結構以及基本操作的實現;能夠對演算法進行基本的時間複雜度和空間複雜度的分析;能夠運用資料結構的基本原理和方法進行問題的分析求解,具備採用C、C++或JAVA語言設計程式與實現演算法的能力。

當然,考生也不必因此而專門複習一遍C或C++程式設計,畢竟複習時間有限,而且資料結構要求的重點在於演算法設計的能力,而不是編寫程式碼的能力,因此,只要能用類似虛擬碼的形式把思路表達清楚就行,不用強求寫出一個沒有任何語法錯誤的程式。

下面我們來解析一下知識點:

線性表這一章裡面的知識點不多,但要做到深刻理解,能夠應用相關知識點解決實際問題。連結串列上插入、刪除節點時的指標操作是選擇題的一個常考點,諸如雙向連結串列等一些相對複雜的連結串列上的操作也是可以出現在綜合應用題當中的。

棧、佇列和陣列可以考查的知識點相比連結串列來說要多一些。最基本的,是棧與佇列FILO和FIFO的特點。比如針對棧FILO的特點,進棧出棧序列的問題常出現在選擇題中。其次,是棧和佇列的順序和鏈式儲存結構,這裡一個常考點是不同儲存結構下棧頂指標、隊首指標以及隊尾指標的操作,特別是迴圈佇列判滿和判空的2種判斷方法。再次,是特殊矩陣的壓縮儲存,這個考點複習的重點可以放在二維矩陣與一維陣列相互轉換時,下標的計算方法,比如與對角線平行的若干行上資料非零的矩陣存放在一維陣列後,各個資料點相應的下標的計算。這一章可能的大題點,在於利用堆疊或佇列的特性,將它們作為基礎的資料結構,支援實際問題求解演算法的設計,例如用棧解決遞迴問題,用佇列解決圖的遍歷問題等等。

樹和二元樹:這一章中我們從順序式的資料結構,轉向層次式的資料結構,要掌握樹、二元樹的各種性質、樹和二元樹的不同儲存結構、森林、樹和二元樹之間的轉換、線索化二元樹、二元樹的應用(二叉排序樹、平衡二元樹和Huffman樹),重點要熟練掌握的,是森林、樹以及二元樹的前中後三種遍歷方式,要能進行相應的演算法設計。這一部分是資料結構考題歷來的重點和難點,複習時要特別關注。一些常見的選擇題考點包括:滿二元樹、完全二元樹節點數的計算,由樹、二元樹的示意圖給出相應的遍歷序列,依據二元樹的遍歷序列還原二元樹,線索化的實質,計算採用不同的方法線索化後二元樹剩餘空指標域的個數,平衡二元樹的定義、性質、建立和四種調整演算法以及回溯法相關的問題。常見的綜合應用題考點包括:二元樹的遍歷演算法,遍歷基礎上針對二元樹的一些統計和操作(比如結點數統計、左右子樹對換等等),判斷某棵二元樹是否二叉排序樹,以上這些都要求能用遞迴的和非遞迴的演算法解決,特別要重視非遞迴的演算法,線索化後二元樹的遍歷演算法,如查詢某結點線索化後的前驅或後繼結點的演算法以及給出Huffman編碼等等。

圖:在這一章中需要識記的是圖以及基於圖的各種定義,儲存方式。要熟練掌握圖的深度遍歷和廣度遍歷演算法,這是用圖來解決應用問題時常用的演算法基礎。需要掌握基於圖的多個演算法,能夠以手工計算的方式在一個給定的圖上執行特定的演算法求解問題。常見的應用問題直接給出或經過抽象,會成為下列問題:最小生成樹求解(PRIM演算法和KRUSKAL演算法,兩種方法思想都很簡單,但要注意不要混淆這兩種方法),拓撲排序問題(這裡會用到陣列實現的連結串列,可以注意一下),關鍵路徑問題(資料結構的較大難點,要把概念理解透,能做出表格找出關鍵路徑),最短路徑問題(有重要的應用背景,也是貪心法不多的能給出最優解的典型問題之一)。

查詢:這一章,需要識記關鍵字、主關鍵字、次關鍵字的含義;靜態查詢與動態查詢的含義及區別;平均查詢長度ASL的概念念及在各種查詢演算法中的計算方法和計算結果,特別是一些典型結構的ASL值,B-樹的概念和基本操作衝突解決方法的選擇和衝突處理過程的描述,B+樹的概念(新增考點),特別要注意B-樹和B+樹概念的對比,以及Hash表相關的概念。要熟練掌握順序表、連結串列、二元樹上的查詢方法,特別要注意順序查詢、二分查詢的適用條件(比如連結串列上用二分查詢就不合適)和演算法複雜度。

排序:排序演算法眾多,今年大綱還加上了外部排序,總共10種,各種不同演算法還有相應的一些概念定義需要記住。選擇題常見的問題包括:給定數列要求給出某種特定排序方法執行一輪後的排序結果,或者給出初始數列和一輪排序結果要求選擇採用的排序演算法,給定時間、空間複雜度要求以及數列特徵要求選擇合適的排序演算法等等。如果排序這一考點出現在綜合應用題中則常與陣列結合來考查。