計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)要點(diǎn)
考生們?cè)谶M(jìn)行計(jì)算機(jī)考研的復(fù)習(xí)階段時(shí),需要把數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)要點(diǎn)了解清楚。小編為大家精心準(zhǔn)備了計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)重點(diǎn),歡迎大家前來(lái)閱讀。
計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)重點(diǎn):二叉樹(shù)
二叉樹(shù)是數(shù)據(jù)結(jié)構(gòu)中的重點(diǎn)內(nèi)容,在這兩年的考試中也將二叉樹(shù)作為重點(diǎn)內(nèi)容來(lái)考查。二叉樹(shù)這部分內(nèi)容要求大家掌握二叉樹(shù)的定義、性質(zhì)、存儲(chǔ)結(jié)構(gòu)、遍歷、線索化、森林和二叉樹(shù)的轉(zhuǎn)換等內(nèi)容。算法的重點(diǎn)是二叉樹(shù)的遍歷及其應(yīng)用,這也是二叉樹(shù)這部分的重點(diǎn)和難點(diǎn)。遍歷是二叉樹(shù)各種操作的基礎(chǔ),可以在遍歷過(guò)程中對(duì)結(jié)點(diǎn)進(jìn)行各種操作。例如:求二叉樹(shù)結(jié)點(diǎn)總數(shù),建立二叉樹(shù),建立二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)等。二叉樹(shù)的很多算法是在遍歷算法基礎(chǔ)上改造完成的,這就要求大家在復(fù)習(xí)時(shí),熟練掌握二叉樹(shù)遍歷的遞歸和非遞歸算法。
下面為大家介紹一下二叉樹(shù)的幾種遍歷方法:
由二叉樹(shù)的定義可知,一顆二叉樹(shù)由根節(jié)點(diǎn)及左、右子樹(shù)三個(gè)基本部分組成,因此,只要依次遍歷這三部分,就可以遍歷整個(gè)二叉樹(shù)。
1.先序遍歷
先序遍歷的遞歸過(guò)程為:若二叉樹(shù)為空,遍歷結(jié)束。
(1)訪問(wèn)根節(jié)點(diǎn);
(2)先序遍歷根節(jié)點(diǎn)的左子樹(shù);
(3)先序遍歷根節(jié)點(diǎn)的右子樹(shù)。
2.中序遍歷
中序遍歷的遞歸過(guò)程為:若二叉樹(shù)為空,遍歷結(jié)束。否則,
(1)中序遍歷根節(jié)點(diǎn)的左子樹(shù);
(2)訪問(wèn)根節(jié)點(diǎn);
(3)中序遍歷根節(jié)點(diǎn)的右子樹(shù)。
3.后序遍歷
后序遍歷的遞歸過(guò)程為:若二叉樹(shù)為空,遍歷結(jié)束。否則,同濟(jì)大學(xué)四平路
(1)后序遍歷根節(jié)點(diǎn)的左子樹(shù);
(2)后序遍歷根節(jié)點(diǎn)的右子樹(shù);
(3)訪問(wèn)根節(jié)點(diǎn)。
層次遍歷
二叉樹(shù)的層次遍歷,是指從二叉樹(shù)的第一層(根結(jié)點(diǎn))開(kāi)始,從上至下逐層遍歷,在同一層中,則按從左到右的順序?qū)Y(jié)點(diǎn)逐個(gè)訪問(wèn)。在進(jìn)行層次遍歷時(shí),對(duì)一層結(jié)點(diǎn)訪問(wèn)完后,再按照它們的訪問(wèn)次序?qū)Ω鱾€(gè)結(jié)點(diǎn)的左孩子和右孩子順序訪問(wèn),這樣一層一層進(jìn)行,先遇到的結(jié)點(diǎn)先訪問(wèn),這與隊(duì)列的操作原則比較吻合。因此,在進(jìn)行層次遍歷時(shí),可設(shè)置一個(gè)隊(duì)列結(jié)構(gòu),遍歷從二叉樹(shù)的根結(jié)點(diǎn)開(kāi)始,首先將根結(jié)點(diǎn)指針入隊(duì)列,然后從對(duì)頭取出一個(gè)元素,每取一個(gè)元素,執(zhí)行下面兩個(gè)操作:
(1)訪問(wèn)該元素所指結(jié)點(diǎn);
(2)若該元素所指結(jié)點(diǎn)的左、右孩子結(jié)點(diǎn)非空,則將該元素所指結(jié)點(diǎn)的左孩子指針和右孩子指針順序入隊(duì)。
此過(guò)程不斷進(jìn)行,當(dāng)隊(duì)列為空時(shí),二叉樹(shù)的層次遍歷結(jié)束。
下面大家來(lái)看二叉樹(shù)遍歷這部分在考試中�?碱}型
1.由二叉樹(shù)的兩個(gè)遍歷序列的組合(先序序列和中序序列)、(中序序列和后序序列)、(層次序列和中序序列)構(gòu)造該二叉樹(shù)或求其他遍歷序列是一種常見(jiàn)的題型。需要注意的是已知二叉樹(shù)的先序序列和后序序列不能唯一確定該二叉樹(shù)。
2.以遍歷為基礎(chǔ)的二叉樹(shù)算法設(shè)計(jì)是考試的重點(diǎn)和難點(diǎn)。常見(jiàn)的試題有以下幾類:
(1)基于二叉樹(shù)遍歷的遞歸算法
這類題目的特點(diǎn)是直接根據(jù)三種遞歸算法改寫(xiě),修改訪問(wèn)語(yǔ)句來(lái)實(shí)現(xiàn)。例如:求二叉樹(shù)的結(jié)點(diǎn)個(gè)數(shù)。
(2)基于二叉樹(shù)層次遍歷的算法
這類題目有求二叉樹(shù)的高度,求二叉樹(shù)最大寬度等。
(3)基于順序存儲(chǔ)的二叉樹(shù)遍歷算法
例如:求順序存儲(chǔ)的滿二叉樹(shù)中序遍歷的非遞歸算法。
(4)其他二叉樹(shù)遍歷算法
例如:左、右子樹(shù)交換等。
大家要重點(diǎn)掌握這些以遍歷為基礎(chǔ)的二叉樹(shù)算法題目,這就要求大家多做練習(xí),通過(guò)習(xí)題訓(xùn)練加深理解,掌握解題思路和技巧,提高解題能力。
另外,現(xiàn)在大家開(kāi)始沖刺復(fù)習(xí)了,選擇一本涵蓋全面、與真題題型一致、題目難度和真題難度高度相近,并對(duì)這兩年的考試試題進(jìn)行了詳細(xì)分析的全真模擬試題集,是此時(shí)沖刺的最佳幫手,可以幫助你查缺補(bǔ)漏,顯著提高應(yīng)試能力。
計(jì)算機(jī)考研暑期復(fù)習(xí)注意事項(xiàng)
(1)注重實(shí)際解題能力和技巧的提升。計(jì)算機(jī)專業(yè)考研時(shí)候的考察重點(diǎn)無(wú)疑在于考生解決問(wèn)題的能力。對(duì)于知識(shí)點(diǎn)的熟練掌握只是基礎(chǔ),是為實(shí)際解決問(wèn)題提供跳板。在牢固掌握基礎(chǔ)知識(shí)的同時(shí),對(duì)解體思路和方法進(jìn)行提煉,并進(jìn)一步學(xué)會(huì)在分析問(wèn)題、解決問(wèn)題的過(guò)程中靈活運(yùn)用才是取得高分的關(guān)鍵。
(2)密切關(guān)注大綱變化。最新的考試大綱大約在8、9月份出臺(tái),大綱出臺(tái)后需仔細(xì)研究新大綱的變化,并對(duì)自己的復(fù)習(xí)進(jìn)度進(jìn)行調(diào)整。在按照新大綱的變化調(diào)整復(fù)習(xí)的側(cè)重點(diǎn)的同時(shí),要特別注意重視新增的考點(diǎn)。
(3)重視歷年真題。研究歷年真題,一方面可以對(duì)考題的具體形式、各個(gè)題型的設(shè)置有一定了解,做到知己知彼;另一方面還可以對(duì)照真題把握老師的出題習(xí)慣與重點(diǎn),并查找自己的薄弱之處,進(jìn)一步查漏補(bǔ)缺。
炎炎夏日,難免產(chǎn)生浮躁情緒,如果再遇上不會(huì)做的題難免心理急躁,更容易出錯(cuò)。這就要求考生保持平和之心以及持之以恒的學(xué)習(xí)態(tài)度,把復(fù)習(xí)進(jìn)度腳踏實(shí)地落到實(shí)處。
計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)重難點(diǎn)及復(fù)習(xí)建議
一、重難點(diǎn)解析和復(fù)習(xí)建議
數(shù)據(jù)結(jié)構(gòu)的考查目標(biāo)定位為掌握數(shù)據(jù)結(jié)構(gòu)的基本概念、基本原理和基本方法,掌握數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)以及基本操作的實(shí)現(xiàn);能夠?qū)λ惴ㄟM(jìn)行基本的時(shí)間復(fù)雜度和空間復(fù)雜度的分析;能夠運(yùn)用數(shù)據(jù)結(jié)構(gòu)的基本原理和方法進(jìn)行問(wèn)題的分析求解,具備采用C、C++或JAVA語(yǔ)言設(shè)計(jì)程序與實(shí)現(xiàn)算法的能力。
當(dāng)然,考生也不必因此而專門(mén)復(fù)習(xí)一遍C或C++程序設(shè)計(jì),畢竟復(fù)習(xí)時(shí)間有限,而且數(shù)據(jù)結(jié)構(gòu)要求的重點(diǎn)在于算法設(shè)計(jì)的能力,而不是編寫(xiě)代碼的能力,因此,只要能用類似偽代碼的形式把思路表達(dá)清楚就行,不用強(qiáng)求寫(xiě)出一個(gè)沒(méi)有任何語(yǔ)法錯(cuò)誤的程序。
下面我們來(lái)解析一下知識(shí)點(diǎn):
線性表這一章里面的知識(shí)點(diǎn)不多,但要做到深刻理解,能夠應(yīng)用相關(guān)知識(shí)點(diǎn)解決實(shí)際問(wèn)題。鏈表上插入、刪除節(jié)點(diǎn)時(shí)的指針操作是選擇題的一個(gè)常考點(diǎn),諸如雙向鏈表等一些相對(duì)復(fù)雜的鏈表上的操作也是可以出現(xiàn)在綜合應(yīng)用題當(dāng)中的。
棧、隊(duì)列和數(shù)組可以考查的知識(shí)點(diǎn)相比鏈表來(lái)說(shuō)要多一些。最基本的,是棧與隊(duì)列FILO和FIFO的特點(diǎn)。比如針對(duì)棧FILO的特點(diǎn),進(jìn)棧出棧序列的問(wèn)題常出現(xiàn)在選擇題中。其次,是棧和隊(duì)列的順序和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),這里一個(gè)�?键c(diǎn)是不同存儲(chǔ)結(jié)構(gòu)下棧頂指針、隊(duì)首指針以及隊(duì)尾指針的.操作,特別是循環(huán)隊(duì)列判滿和判空的2種判斷方法。再次,是特殊矩陣的壓縮存儲(chǔ),這個(gè)考點(diǎn)復(fù)習(xí)的重點(diǎn)可以放在二維矩陣與一維數(shù)組相互轉(zhuǎn)換時(shí),下標(biāo)的計(jì)算方法,比如與對(duì)角線平行的若干行上數(shù)據(jù)非零的矩陣存放在一維數(shù)組后,各個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的下標(biāo)的計(jì)算。這一章可能的大題點(diǎn),在于利用堆�;蜿�(duì)列的特性,將它們作為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),支持實(shí)際問(wèn)題求解算法的設(shè)計(jì),例如用棧解決遞歸問(wèn)題,用隊(duì)列解決圖的遍歷問(wèn)題等等。
樹(shù)和二叉樹(shù):這一章中我們從順序式的數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)向?qū)哟问降臄?shù)據(jù)結(jié)構(gòu),要掌握樹(shù)、二叉樹(shù)的各種性質(zhì)、樹(shù)和二叉樹(shù)的不同存儲(chǔ)結(jié)構(gòu)、森林、樹(shù)和二叉樹(shù)之間的轉(zhuǎn)換、線索化二叉樹(shù)、二叉樹(shù)的應(yīng)用(二叉排序樹(shù)、平衡二叉樹(shù)和Huffman樹(shù)),重點(diǎn)要熟練掌握的,是森林、樹(shù)以及二叉樹(shù)的前中后三種遍歷方式,要能進(jìn)行相應(yīng)的算法設(shè)計(jì)。這一部分是數(shù)據(jù)結(jié)構(gòu)考題歷來(lái)的重點(diǎn)和難點(diǎn),復(fù)習(xí)時(shí)要特別關(guān)注。一些常見(jiàn)的選擇題考點(diǎn)包括:滿二叉樹(shù)、完全二叉樹(shù)節(jié)點(diǎn)數(shù)的計(jì)算,由樹(shù)、二叉樹(shù)的示意圖給出相應(yīng)的遍歷序列,依據(jù)二叉樹(shù)的遍歷序列還原二叉樹(shù),線索化的實(shí)質(zhì),計(jì)算采用不同的方法線索化后二叉樹(shù)剩余空指針域的個(gè)數(shù),平衡二叉樹(shù)的定義、性質(zhì)、建立和四種調(diào)整算法以及回溯法相關(guān)的問(wèn)題。常見(jiàn)的綜合應(yīng)用題考點(diǎn)包括:二叉樹(shù)的遍歷算法,遍歷基礎(chǔ)上針對(duì)二叉樹(shù)的一些統(tǒng)計(jì)和操作(比如結(jié)點(diǎn)數(shù)統(tǒng)計(jì)、左右子樹(shù)對(duì)換等等),判斷某棵二叉樹(shù)是否二叉排序樹(shù),以上這些都要求能用遞歸的和非遞歸的算法解決,特別要重視非遞歸的算法,線索化后二叉樹(shù)的遍歷算法,如查找某結(jié)點(diǎn)線索化后的前驅(qū)或后繼結(jié)點(diǎn)的算法以及給出Huffman編碼等等。
圖:在這一章中需要識(shí)記的是圖以及基于圖的各種定義,存儲(chǔ)方式。要熟練掌握?qǐng)D的深度遍歷和廣度遍歷算法,這是用圖來(lái)解決應(yīng)用問(wèn)題時(shí)常用的算法基礎(chǔ)。需要掌握基于圖的多個(gè)算法,能夠以手工計(jì)算的方式在一個(gè)給定的圖上執(zhí)行特定的算法求解問(wèn)題。常見(jiàn)的應(yīng)用問(wèn)題直接給出或經(jīng)過(guò)抽象,會(huì)成為下列問(wèn)題:最小生成樹(shù)求解(PRIM算法和KRUSKAL算法,兩種方法思想都很簡(jiǎn)單,但要注意不要混淆這兩種方法),拓?fù)渑判騿?wèn)題(這里會(huì)用到數(shù)組實(shí)現(xiàn)的鏈表,可以注意一下),關(guān)鍵路徑問(wèn)題(數(shù)據(jù)結(jié)構(gòu)的較大難點(diǎn),要把概念理解透,能做出表格找出關(guān)鍵路徑),最短路徑問(wèn)題(有重要的應(yīng)用背景,也是貪心法不多的能給出最優(yōu)解的典型問(wèn)題之一)。
查找:這一章,需要識(shí)記關(guān)鍵字、主關(guān)鍵字、次關(guān)鍵字的含義;靜態(tài)查找與動(dòng)態(tài)查找的含義及區(qū)別;平均查找長(zhǎng)度ASL的概念念及在各種查找算法中的計(jì)算方法和計(jì)算結(jié)果,特別是一些典型結(jié)構(gòu)的ASL值,B-樹(shù)的概念和基本操作沖突解決方法的選擇和沖突處理過(guò)程的描述,B+樹(shù)的概念(新增考點(diǎn)),特別要注意B-樹(shù)和B+樹(shù)概念的對(duì)比,以及Hash表相關(guān)的概念。要熟練掌握順序表、鏈表、二叉樹(shù)上的查找方法,特別要注意順序查找、二分查找的適用條件(比如鏈表上用二分查找就不合適)和算法復(fù)雜度。
排序:排序算法眾多,今年大綱還加上了外部排序,總共10種,各種不同算法還有相應(yīng)的一些概念定義需要記住。選擇題常見(jiàn)的問(wèn)題包括:給定數(shù)列要求給出某種特定排序方法運(yùn)行一輪后的排序結(jié)果,或者給出初始數(shù)列和一輪排序結(jié)果要求選擇采用的排序算法,給定時(shí)間、空間復(fù)雜度要求以及數(shù)列特征要求選擇合適的排序算法等等。如果排序這一考點(diǎn)出現(xiàn)在綜合應(yīng)用題中則常與數(shù)組結(jié)合來(lái)考查。
【計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)要點(diǎn)】相關(guān)文章:
考研計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)注意要點(diǎn)12-15
計(jì)算機(jī)專業(yè)考研的復(fù)習(xí)要點(diǎn)12-20
考研計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)后期復(fù)習(xí)建議11-09
考研計(jì)算機(jī)沖刺階段的復(fù)習(xí)要點(diǎn)12-16
計(jì)算機(jī)專業(yè)考研暑期復(fù)習(xí)的要點(diǎn)12-20
計(jì)算機(jī)考研暑期復(fù)習(xí)的要點(diǎn)12-15
考研計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)注意事項(xiàng)12-16
計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)重點(diǎn)歸納11-08