計算機二級公共基礎知識 02

2022-08-22 16:39:11 字數 2824 閱讀 3760

在鏈式儲存方式中,要求每個結點由兩部分組成:一部分用於存放資料元素值,稱為資料域;另一部分用於存放指標,稱為指標域。其中指標用於指向該結點的前乙個或後乙個結點(即前件或後件)。

樹是簡單的非線性結構,樹中有且僅有乙個沒有前驅的節點稱為「根」,其餘節點分成m個互不相交的有限集合t1,t2,...,tm,每個集合又是一棵樹,稱t1,t2,...,tm為根結點的子樹。

●父節點:每乙個節點只有乙個前件,無前件的節點只有乙個,稱為樹的根結點(簡稱樹的根)。

●子節點:每乙個節點可以後多個後件,無後件的節點稱為葉子節點。

●樹的度:所有節點最大的度。 

●樹的深度:樹的最大層次。

(1)二叉樹的定義:二叉樹是種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由乙個根節點及兩棵互不相交的左右二叉子樹組成。可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有如下兩個特點:

●二叉樹可為空,空的二叉樹無節點,非空二叉樹有且只有乙個根結點;

●每個節點最多可有兩棵子樹,稱為左子樹和右子樹。

(2)二叉樹的基本性質。

性質1:在二叉樹的第k層上至多有2k-1個結點(k≥1)。

性質2:深度為m的二叉樹至多有2m-1個結點。

性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多乙個。

性質4:具有n個結點的完全二叉樹的深度至少為[log2n]+1,其中[log2n]表示log2n的整數部分。

(1)滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最後一層外,每一層上的所有結點都有兩個子結點。滿二叉樹在其第i層上有21-1個結點。

從上面滿二叉樹定義可知,二叉樹的每一層上的結點數必須都達到最大,否則就不是滿二叉樹。深度為m的滿二叉樹有2m-1個結點。

(2)完全二叉樹:完全二叉樹是指這樣的二叉樹:除最後一層外,每一層上的結點數均達到最大值;在最後一層上只缺少右邊的若干結點。 

如果一棵具有n個結點的深度為k的二叉樹,它的每個結點都與深度為k的滿二叉樹中編號為1~n的結點對應。

二叉樹通常採用鏈式儲存結構,儲存節點由資料域和指標城(左指標城和右指標域)組成。二叉樹的鏈式儲存結構也稱二叉鍊錶,對滿二叉樹和完全二叉樹可按層次進行順序儲存。

二叉樹的遍歷是指不重複地訪問二叉樹中所有節點,主要指非空二叉樹,對於空二叉樹則結束返回。二叉樹的遍歷包括前序遍歷、中序遍歷和後序遍歷。

(1)前序遍歷。

前序遍歷是指在訪問根結點遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹;並且,在遍歷左右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執行空操作;否則①訪問根結點;②前序遍歷左子樹;③前序遍歷右子樹。

(2)中序遍歷。

中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹:並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。中序遍歷描述為:若二叉樹為空,則執行空操作;否則①中序遍歷左子樹;②訪問根結點;③中序遍歷右子樹。

(3)後序遍歷。

後序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點.並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。後序遍歷描述為:若二叉樹為空,則執行空操作;否則①後序遍歷左子樹;②後序遍歷右子樹;③訪問根結點。

最壞情況下,最後乙個元素才是要找的元素,則需要與線性表中所有元素比較,比較次數為n。

(2)二分查詢:二分查詢也稱折半查詢,它是一種高效率的查詢方法。但二分查詢有條件限制,它要求表必須用順序儲存結構,且表中元素必須按關鍵字有序(公升序或降序均可)排列。對長度為n的有序線性表,在最壞情況下,二分查詢法只需比較log2n次。

(1)交換類排序法。

●氣泡排序:通過對待排序序列從後向前或從前向後,依次比較相鄰元素的排序碼,若發現逆序則交換,使較大的元素逐漸從前部移向後部或較小的元素逐漸從後部移向前部,直到所有元素有序為止。

在最壞情況下,對長度為n的線性表排序,氣泡排序需要比較的次數為n(n-1)/2。

●快速排序:是迄今為止所有內排序演算法中速度最快的一種。它的基本思想是:任取待排序序列中的某個元素作為基準(一般取第乙個元素).通過一趟排序.將待排元素分為左右兩個子串行,左子串行元素的排序碼均小於或等於基準元素的排序碼,右子串行的排序碼則大於基準元素的排序碼,然後分別對兩個子串行繼續進行排序.直至整個

序列有序。最壞情況下,即每次劃分,只得到乙個序列,時間效率為0(n2)。

(2)插入類排序法。

●簡單插入排序法:把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表中只包含乙個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第乙個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。在最壞情況下,即初始排序序列是逆序的情況下,

比較次數為n(n-1)/2,移動次數為n(n-1)/2。

●希爾排序法:先將整個待排元素序列分割成若於個子序列(由相隔某個「增量」的元素組成的)分別進行直接插入排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。

(3)選擇類排序法。

●簡單選擇排序法:掃瞄整個線性表,從中選出最小的元素,將它交換到表的最前面;然後對剩下的子表採用同樣的方法,直到子表空為止。最壞情況下需要比較n(n-1)/2次。

●堆排序的方法:首先將乙個無序序列建成堆;然後將堆頂元素(序列中的最大項)與堆中最後乙個元素交換(最大項應該在序列的最後)。不考慮已經換到最後的那個元素,只考慮前n-1個元素構成的子串行,將該子串行調整為堆。反覆做步驟②,直到剩下的子串行空為止。在最壞情況下,堆排序法需要比較的次數為0(nlog2n)。

二級公共基礎知識 二級公共基礎知識 01

樹是一種資料結構,它是由n n 1 個有限結點組成乙個具有層次關係的集合。把它叫做 樹 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。樹的特點 每個結點有零個或多個子結點 沒有父結點的結點稱為根結點 每乙個非根結點有且只有乙個父結點 除了根結點外,每個子結點可以分為多個不相交的子樹 ...

全國計算機二級考試公共基礎知識習題 2

1 演算法的時間複雜度是指 c a.執行演算法程式所需要的時間 b.演算法程式的長度 c.演算法執行過程中所需要的基本運算次數 d.演算法程式中的指令條數 2 下列敘述中正確的是 a a.線性表是線性結構 b.棧與佇列是非線性結構 c.線性鍊錶是非線性結構 d.二叉樹是線性結構 3 設一棵完全二叉樹...

2023年計算機二級考試公共基礎知識重點9

考點9 順序查詢 考試鏈結 中 華 考 試 網 考點9在筆試考試中考核機率在30 一般出現選擇題中,分值為2分,讀者應該具體掌握順序查詢的演算法。查詢是指在乙個給定的資料結構中查詢某個指定的元素。從線性表的第乙個元素開始,依次將線性表中的元素與被查詢的元素相比較,若相等則表示查詢成功 若線性表中所有...