計算機知識點多且難, 一直是學生們頭痛的科目之一。我們的考研輔導老師化繁為簡,按照2013年考研計算機專業(yè)大綱解析后,特歸納出十大核心考點以供學生們復習參考。
核心考點一:隊列和棧結構的概念理解
棧是僅限制在表的一端進行插入和刪除運算的線性表,稱插入、刪除這一端為棧頂。表中無元素時為空棧。棧的修改是按后進先出的原則進行的。通常棧有順序棧和鏈棧兩種存儲結構。
隊列是一種運算受限的線性表,插入在表的一端進行,而刪除在表的另一端進行,允許刪除的一端稱為隊頭,允許插入的一端稱為隊尾,隊列的操作原則是先進先出的。隊列也有順序存儲和鏈式存儲兩種存儲結構。
核心考點二:線性表中單鏈表相關算法設計與實現(xiàn)
一些基礎但又重要的單鏈表相關算法,如:
打印單鏈表,voidPrintList(List list); 使用一個指針遍歷所有鏈表節(jié)點。
兩個升序鏈表,打印tarList中的相應元素,這些元素的序號由SeqList指定,void PrintLots(List tarList, List seqList); 使用兩個指針分別遍歷兩個鏈表,每次取出序列鏈表的一個序號后,根據(jù)該序號,到達目標鏈表指定節(jié)點。
兩個升序鏈表的交集 ,ListIntersect(List l1, List l2);
兩個升序鏈表的并集 ,ListJoin(List l1, List l2);
單鏈表就地置逆,voidReverse(List l); 使用三個指針表示前驅(qū),當前和后繼節(jié)點,每次將當前節(jié)點的Next指向前驅(qū)節(jié)點,然后向后遍歷直到鏈表末尾。
核心考點三:二叉樹的遍歷
遍歷的過程就是把非線性結構的二叉樹中的結點排成一個線性序列的過程。
二叉樹遍歷方法可分為兩大類,一類是“寬度優(yōu)先”法,即從根結點開始,由上到下,從左往右一層一層的遍歷;另一類是“深度優(yōu)先法”,即一棵子樹一棵子樹的遍歷。
從二叉樹結構的整體看,二叉樹可以分為根結點,左子樹和右子樹三部分,只要遍歷了這三部分,就算遍歷了二叉樹。設D表示根結點,L表示左子樹,R表示右子樹,則DLR的組合共有6種,即DLR,DRL,LDR,LRD,RDL,RLD。若限定先左后右,則只有DLR,LDR,LRD三種,分別稱為先(前)序法(先根次序法),中序法(中根次序法,對稱法),后序法(后根次序法)。三種遍歷的遞歸算法如下:
1.先序法(DLR)
若二叉樹為空,則空操作,否則:訪問根結點à先序遍歷左子樹à先序遍歷右子樹。
2.中序法(LDR)
若二叉樹為空,則空操作,否則:中序遍歷左子樹à訪問根結點à中序遍歷右子樹.
3.后序法(LRD)
若二叉樹為空,則空操作,否則:后序遍歷左子樹à后序遍歷右子樹à訪問根結點.
核心考點四:完全二叉樹中有關結點個數(shù)計算
完全二叉樹的定義:深度為k,有n個結點的二叉樹當且僅當其每一個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時,稱為完全二叉樹。
完全二叉樹的葉子數(shù)為(n+ 1) / 2取下整。
核心考點五:森林與二叉樹之間的轉換以及轉換過程中結點之間的關系
將一棵樹轉換為二叉樹的方法是:
1.樹中所有相鄰兄弟之間加一條連線。
2.對樹中的每個結點,只保留其與第一個孩子結點之間的連線,刪去其與其它孩子結點之間的連線。
3.以樹的根結點為軸心,將整棵樹順時針旋轉一定的角度,使之結構層次分明。
森林轉換為二叉樹的方法如下:
1.將森林中的每棵樹轉換成相應的二叉樹。