您現(xiàn)在的位置: 跨考網(wǎng)考研專業(yè)課正文

2014考研計(jì)算機(jī)復(fù)習(xí):數(shù)據(jù)結(jié)構(gòu)十大核心考點(diǎn)解析_跨考網(wǎng)

最后更新時(shí)間:2013-11-16 00:15:21
輔導(dǎo)課程:暑期集訓(xùn) 在線咨詢
復(fù)習(xí)緊張,焦頭爛額?逆風(fēng)輕襲,來跨考秋季集訓(xùn)營,幫你尋方法,定方案! 了解一下>>

  核心考點(diǎn)一:隊(duì)列和棧結(jié)構(gòu)的概念理解

  棧是僅限制在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,稱插入、刪除這一端為棧頂。表中無元素時(shí)為空棧。棧的修改是按后進(jìn)先出的原則進(jìn)行的。通常棧有順序棧和鏈棧兩種存儲(chǔ)結(jié)構(gòu)。

  隊(duì)列是一種運(yùn)算受限的線性表,插入在表的一端進(jìn)行,而刪除在表的另一端進(jìn)行,允許刪除的一端稱為隊(duì)頭,允許插入的一端稱為隊(duì)尾,隊(duì)列的操作原則是先進(jìn)先出的。隊(duì)列也有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩種存儲(chǔ)結(jié)構(gòu)。

  核心考點(diǎn)二:線性表中單鏈表相關(guān)算法設(shè)計(jì)與實(shí)現(xiàn)

  一些基礎(chǔ)但又重要的單鏈表相關(guān)算法,如:

  1.打印單鏈表,void PrintList(List list); 使用一個(gè)指針遍歷所有鏈表節(jié)點(diǎn)。

  2.兩個(gè)升序鏈表,打印tarList中的相應(yīng)元素,這些元素的序號(hào)由SeqList指定,void PrintLots(List tarList, List seqList); 使用兩個(gè)指針分別遍歷兩個(gè)鏈表,每次取出序列鏈表的一個(gè)序號(hào)后,根據(jù)該序號(hào),到達(dá)目標(biāo)鏈表指定節(jié)點(diǎn)。

  3.兩個(gè)升序鏈表的交集 ,List Intersect(List l1, List l2);

  4.兩個(gè)升序鏈表的并集 ,List Join(List l1, List l2);

  5.單鏈表就地置逆,void Reverse(List l); 使用三個(gè)指針表示前驅(qū),當(dāng)前和后繼節(jié)點(diǎn),每次將當(dāng)前節(jié)點(diǎn)的Next指向前驅(qū)節(jié)點(diǎn),然后向后遍歷直到鏈表末尾。

  核心考點(diǎn)三:二叉樹的遍歷

  遍歷的過程就是把非線性結(jié)構(gòu)的二叉樹中的結(jié)點(diǎn)排成一個(gè)線性序列的過程。

  二叉樹遍歷方法可分為兩大類,一類是“寬度優(yōu)先”法,即從根結(jié)點(diǎn)開始,由上到下,從左往右一層一層的遍歷;另一類是“深度優(yōu)先法”,即一棵子樹一棵子樹的遍歷。

  從二叉樹結(jié)構(gòu)的整體看,二叉樹可以分為根結(jié)點(diǎn),左子樹和右子樹三部分,只要遍歷了這三部分,就算遍歷了二叉樹。設(shè)D表示根結(jié)點(diǎn),L表示左子樹,R表示右子樹,則DLR的組合共有6種,即DLR,DRL,LDR,LRD,RDL,RLD。若限定先左后右,則只有DLR,LDR,LRD三種,分別稱為先(前)序法(先根次序法),中序法(中根次序法,對稱法),后序法(后根次序法)。三種遍歷的遞歸算法如下:

  1.先序法(DLR)

  若二叉樹為空,則空操作,否則:訪問根結(jié)點(diǎn)?先序遍歷左子樹?先序遍歷右子樹。

  2.中序法(LDR)

  若二叉樹為空,則空操作,否則:中序遍歷左子樹?訪問根結(jié)點(diǎn)?中序遍歷右子樹.

  3.后序法(LRD)

  若二叉樹為空,則空操作,否則:后序遍歷左子樹?后序遍歷右子樹?訪問根結(jié)點(diǎn).

  核心考點(diǎn)四:完全二叉樹中有關(guān)結(jié)點(diǎn)個(gè)數(shù)計(jì)算

  完全二叉樹的定義:深度為k,有n個(gè)結(jié)點(diǎn)的二叉樹當(dāng)且僅當(dāng)其每一個(gè)結(jié)點(diǎn)都與深度為k的滿二叉樹中編號(hào)從1至n的結(jié)點(diǎn)一一對應(yīng)時(shí),稱為完全二叉樹。

  完全二叉樹的葉子數(shù)為(n + 1) / 2取下整。

  核心考點(diǎn)五:森林與二叉樹之間的轉(zhuǎn)換以及轉(zhuǎn)換過程中結(jié)點(diǎn)之間的關(guān)系

  將一棵樹轉(zhuǎn)換為二叉樹的方法是:

  1.樹中所有相鄰兄弟之間加一條連線。

  2.對樹中的每個(gè)結(jié)點(diǎn),只保留其與第一個(gè)孩子結(jié)點(diǎn)之間的連線,刪去其與其它孩子結(jié)點(diǎn)之間的連線。

  3.以樹的根結(jié)點(diǎn)為軸心,將整棵樹順時(shí)針旋轉(zhuǎn)一定的角度,使之結(jié)構(gòu)層次分明。

  森林轉(zhuǎn)換為二叉樹的方法如下:

  1.將森林中的每棵樹轉(zhuǎn)換成相應(yīng)的二叉樹。

  2.第一棵二叉樹不動(dòng),從第二棵二叉樹開始,依次把后一棵二叉樹的根結(jié)點(diǎn)作為前一棵二叉樹根結(jié)點(diǎn)的右孩子,當(dāng)所有二叉樹連在一起后,所得到的二叉樹就是由森林轉(zhuǎn)換得到的二叉樹。

  樹和森林都可以轉(zhuǎn)換為二叉樹,二者的不同是:樹轉(zhuǎn)換成的二叉樹,其根結(jié)點(diǎn)必然無右孩子,而森林轉(zhuǎn)換后的二叉樹,其根結(jié)點(diǎn)有右孩子。將一棵二叉樹還原為樹或森林,具體方法如下:

  1.若某結(jié)點(diǎn)是其雙親的左孩子,則把該結(jié)點(diǎn)的右孩子、右孩子的右孩子、……都與該結(jié)點(diǎn) 的雙親結(jié)點(diǎn)用線連起來。

  2.刪掉原二叉樹中所有雙親結(jié)點(diǎn)與右孩子結(jié)點(diǎn)的連線。

  3.整理由1、2兩步所得到的樹或森林,使之結(jié)構(gòu)層次分明。

  核心考點(diǎn)六:對無向連通圖特性的理解

  無向圖的每條邊,在頂點(diǎn)計(jì)算度的過程中,都要兩次參與計(jì)算(與邊兩關(guān)聯(lián)的2個(gè)頂點(diǎn)),因此所有頂點(diǎn)的度之和為偶數(shù)。

  具有n個(gè)頂點(diǎn)的無向連通圖,其邊數(shù)大于或等于n-1。

  在無向連通圖中,所有頂點(diǎn)的度數(shù)都有可能大于1。

  核心考點(diǎn)七:對m階B樹定義的理解

  一棵m階的B樹滿足下列條件:

  1. 每個(gè)結(jié)點(diǎn)至多有m棵子樹。

  2. 除根結(jié)點(diǎn)外,其它每個(gè)分支至少有m/2棵子樹。

  3. 根結(jié)點(diǎn)至少有兩棵子樹(除非B樹只有一個(gè)結(jié)點(diǎn))。

  4. 所有葉結(jié)點(diǎn)在同一層上。B樹的葉結(jié)點(diǎn)可以看成一種外部結(jié)點(diǎn),不包含任何信息。

  5. 有j個(gè)孩子的非葉結(jié)點(diǎn)恰好有j-1個(gè)關(guān)鍵碼,關(guān)鍵碼按遞增次序排列。結(jié)點(diǎn)中包含的信息為 ∶ (p0,k1,p1,k2,p2, … ,kj-1,pj-1)

  其中,ki為關(guān)鍵碼,且滿足ki

  核心考點(diǎn)八:帶權(quán)圖的最短路徑算法及應(yīng)用

  迪杰斯特拉(Dijkstra)算法求單源最短路徑,算法思想:

  設(shè)S為最短距離已確定的頂點(diǎn)集(看作紅點(diǎn)集),V-S是最短距離尚未確定的頂點(diǎn)集(看作藍(lán)點(diǎn)集)。

  1.初始化:初始化時(shí),只有源點(diǎn)s的最短距離是已知的(SD(s)=0),故紅點(diǎn)集S={s},藍(lán)點(diǎn)集為空。

  2.重復(fù)以下工作,按路徑長度遞增次序產(chǎn)生各頂點(diǎn)最短路徑,在當(dāng)前藍(lán)點(diǎn)集中選擇一個(gè)最短距離最小的藍(lán)點(diǎn)來擴(kuò)充紅點(diǎn)集,以保證算法按路徑長度遞增的次序產(chǎn)生各頂點(diǎn)的最短路徑。當(dāng)藍(lán)點(diǎn)集中僅剩下最短距離為∞的藍(lán)點(diǎn),或者所有藍(lán)點(diǎn)已擴(kuò)充到紅點(diǎn)集時(shí),s到所有頂點(diǎn)的最短路徑就求出來了。

  注意:①若從源點(diǎn)到藍(lán)點(diǎn)的路徑不存在,則可假設(shè)該藍(lán)點(diǎn)的最短路徑是一條長度為無窮大的虛擬路徑。②從源點(diǎn)s到終點(diǎn)v的最短路徑簡稱為v的最短路徑;s到v的最短路徑長度簡稱為v的最短距離,并記為SD(v)。

  核心考點(diǎn)九:堆排序

  大根堆的定義:完全二叉樹,任一非葉子結(jié)點(diǎn)都大于等于它的孩子,也就是說根結(jié)點(diǎn)是最大的。而且顯然大根堆的任一棵子樹也是大根堆。

  堆排序的基本思想:記錄區(qū)的分為無序區(qū)和有序區(qū)前后兩部分;用無序區(qū)的數(shù)建大根堆,得到的根(最大的數(shù))和無序區(qū)的最后一個(gè)數(shù)交換,也就是將該根歸入有序區(qū)的最前端;如此重復(fù)下去,直至有序區(qū)擴(kuò)展至整個(gè)記錄區(qū)。

  具體操作可按下面步驟實(shí)現(xiàn):

  1.建大根堆

  2.交換根和無序區(qū)最后一個(gè)數(shù)

  3.重建大根堆,因?yàn)榻粨Q只是使根改變了,所以左右子樹依然分別是大根堆。

  4.比較根,左子樹的根和右子樹的根,如果根最大,則無須再作調(diào)整,樹已經(jīng)是大根堆了;如果左子樹的根最大,交換它與根,再遞歸調(diào)整左子樹;如果右子樹的根最大,交換它與根,再遞歸調(diào)整右子數(shù)。

  5.遞歸調(diào)整到葉子的時(shí)候,樹就是大根堆了。

  核心考點(diǎn)十:各類排序算法的特點(diǎn)及比較

  幾種主要的排序算法:冒泡排序、選擇排序、插入排序、快速排序、歸并排序、Shell排序、堆排序等。

  冒泡排序算法思想:將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對這個(gè)“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個(gè)序列,并時(shí)刻注意兩個(gè)相鄰的元素的順序是否正確。如果發(fā)現(xiàn)兩個(gè)相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。

  選擇排序算法思想:選擇排序的基本思想是對待排序的記錄序列進(jìn)行n-1遍的處理,第i遍處理是將L[i..n]中最小者與L[i]交換位置。這樣,經(jīng)過i遍處理之后,前i個(gè)記錄的位置已經(jīng)是正確的了。

  插入排序算法思想:經(jīng)過i-1遍處理后,L[1..i-1]己排好序。第i遍處理僅將L[i]插入L[1..i-1]的適當(dāng)位置,使得L[1..i]又是排好序的序列。

  快速排序算法思想:快速排序的基本思想是基于分治策略的。對于輸入的子序列L[p..r],如果規(guī)模足夠小則直接進(jìn)行排序,否則分三步處理:1. 分解(Divide):將輸入的序列L[p..r]劃分成兩個(gè)非空子序列L[p..q]和L[q+1..r],使L[p..q]中任一元素的值不大于L[q+1..r]中任一元素的值。2. 遞歸求解(Conquer):通過遞歸調(diào)用快速排序算法分別對L[p..q]和L[q+1..r]進(jìn)行排序。3. 合并(Merge):由于對分解出的兩個(gè)子序列的排序是就地進(jìn)行的,所以在L[p..q]和L[q+1..r]都排好序后不需要執(zhí)行任何計(jì)算L[p..r]就已排好序。

  歸并排序算法思想:分而治之(divide - conquer)。每個(gè)遞歸過程涉及三個(gè)步驟:1.分解,把待排序的n個(gè)元素的序列分解成兩個(gè)子序列,每個(gè)子序列包括 n/2 個(gè)元素。2. 治理,對每個(gè)子序列分別調(diào)用歸并排序MergeSort,進(jìn)行遞歸操作。3. 合并,合并兩個(gè)排好序的子序列,生成排序結(jié)果。

  Shell排序算法思想:算法先將要排序的一組數(shù)按某個(gè)增量d分成若干組,每組中記錄的下標(biāo)相差d.對每組中全部元素進(jìn)行排序,然后再用一個(gè)較小的增量對它進(jìn)行,在每組中再進(jìn)行排序。當(dāng)增量減到1時(shí),整個(gè)要排序的數(shù)被分成一組,排序完成。

  堆排序算法思想:用大根堆排序的基本思想:1.先將初始文件R[1..n]建成一個(gè)大根堆,此堆為初始的無序區(qū)。2.再將關(guān)鍵字最大的記錄R[1](即堆頂)和無序區(qū)的最后一個(gè)記錄R[n]交換,由此得到新的無序區(qū)R[1..n-1]和有序區(qū)R[n],且滿足R[1..n-1].keys≤R[n].key。3. 由于交換后新的根R[1]可能違反堆性質(zhì),故應(yīng)將當(dāng)前無序區(qū)R[1..n-1]調(diào)整為堆。

2014考研最新資訊 盡在跨考網(wǎng)?

更多2014年考研備考資料,點(diǎn)擊進(jìn)入>>>?

  2022考研初復(fù)試已經(jīng)接近尾聲,考研學(xué)子全面進(jìn)入2023屆備考,跨考為23考研的考生準(zhǔn)備了10大課包全程準(zhǔn)備、全年復(fù)習(xí)備考計(jì)劃、目標(biāo)院校專業(yè)輔導(dǎo)、全真復(fù)試模擬練習(xí)和全程針對性指導(dǎo);2023考研的小伙伴針也已經(jīng)開始擇校和復(fù)習(xí)了,跨考考研暢學(xué)5.0版本全新升級(jí),無論你在校在家都可以更自如的完成你的考研復(fù)習(xí),暑假集訓(xùn)營帶來了院校專業(yè)初步選擇,明確方向;考研備考全年規(guī)劃,核心知識(shí)點(diǎn)入門;個(gè)性化制定備考方案,助你贏在起跑線,早出發(fā)一點(diǎn)離成功就更近一點(diǎn)!

點(diǎn)擊右側(cè)咨詢或直接前往了解更多

考研院校專業(yè)選擇和考研復(fù)習(xí)計(jì)劃
2023備考學(xué)習(xí) 2023線上線下隨時(shí)學(xué)習(xí) 34所自劃線院??佳袕?fù)試分?jǐn)?shù)線匯總
2022考研復(fù)試最全信息整理 全國各招生院??佳袕?fù)試分?jǐn)?shù)線匯總
2023全日制封閉訓(xùn)練 全國各招生院??佳姓{(diào)劑信息匯總
2023考研先知 考研考試科目有哪些? 如何正確看待考研分?jǐn)?shù)線?
不同院校相同專業(yè)如何選擇更適合自己的 從就業(yè)說考研如何擇專業(yè)?
手把手教你如何選專業(yè)? 高校研究生教育各學(xué)科門類排行榜

跨考考研課程

班型 定向班型 開班時(shí)間 高定班 標(biāo)準(zhǔn)班 課程介紹 咨詢
秋季集訓(xùn) 沖刺班 9.10-12.20 168000 24800起 小班面授+專業(yè)課1對1+專業(yè)課定向輔導(dǎo)+協(xié)議加強(qiáng)課程(高定班)+專屬規(guī)劃答疑(高定班)+精細(xì)化答疑+復(fù)試資源(高定班)+復(fù)試課包(高定班)+復(fù)試指導(dǎo)(高定班)+復(fù)試班主任1v1服務(wù)(高定班)+復(fù)試面授密訓(xùn)(高定班)+復(fù)試1v1(高定班)
2023集訓(xùn)暢學(xué) 非定向(政英班/數(shù)政英班) 每月20日 22800起(協(xié)議班) 13800起 先行階在線課程+基礎(chǔ)階在線課程+強(qiáng)化階在線課程+真題階在線課程+沖刺階在線課程+專業(yè)課針對性一對一課程+班主任全程督學(xué)服務(wù)+全程規(guī)劃體系+全程測試體系+全程精細(xì)化答疑+擇校擇專業(yè)能力定位體系+全年關(guān)鍵環(huán)節(jié)指導(dǎo)體系+初試加強(qiáng)課+初試專屬服務(wù)+復(fù)試全科標(biāo)準(zhǔn)班服務(wù)

①凡本網(wǎng)注明“稿件來源:跨考網(wǎng)”的所有文字、圖片和音視頻稿件,版權(quán)均屬北京尚學(xué)碩博教育咨詢有限公司(含本網(wǎng)和跨考網(wǎng))所有,任何媒體、網(wǎng)站或個(gè)人未經(jīng)本網(wǎng)協(xié)議授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)帖或以其他任何方式復(fù)制、發(fā)表。已經(jīng)本網(wǎng)協(xié)議授權(quán)的媒體、網(wǎng)站,在下載使用時(shí)必須注明“稿件來源,跨考網(wǎng)”,違者本網(wǎng)將依法追究法律責(zé)任。

②本網(wǎng)未注明“稿件來源:跨考網(wǎng)”的文/圖等稿件均為轉(zhuǎn)載稿,本網(wǎng)轉(zhuǎn)載僅基于傳遞更多信息之目的,并不意味著再通轉(zhuǎn)載稿的觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)下載使用,必須保留本網(wǎng)注明的“稿件來源”,并自負(fù)版權(quán)等法律責(zé)任。如擅自篡改為“稿件來源:跨考網(wǎng)”,本網(wǎng)將依法追究法律責(zé)任。

③如本網(wǎng)轉(zhuǎn)載稿涉及版權(quán)等問題,請作者見稿后在兩周內(nèi)速來電與跨考網(wǎng)聯(lián)系,電話:400-883-2220