2023年廣東省理論資料大綱

2022-10-08 13:09:02 字數 930 閱讀 5227

1、設一棵樹t中邊的集合為,要求用孩子兄弟表示法(二叉鍊錶)表示出該樹的儲存結構並將該樹轉化成對應的二叉樹。

2、二路插入排序是將待排關鍵字序列r[1..n]中關鍵字分二路分別按序插入到輔助向量d[1..n]前半部和後半部(注:

向量d可視為迴圈表),其原則為,先將r[l]賦給d[1],再從r[2] 記錄開始分二路插入。編寫實現二路插入排序演算法。

3、有一種簡單的排序演算法,叫做計數排序(count sorting)。這種排序演算法對乙個待排序的表(用陣列表示)進行排序,並將排序結果存放到另乙個新的表中。必須注意的是,表中所有待排序的關鍵碼互不相同,計數排序演算法針對表中的每個記錄,掃瞄待排序的表一趟,統計表中有多少個記錄的關鍵碼比該記錄的關鍵碼小,假設針對某乙個記錄,統計出的計數值為c,那麼,這個記錄在新的有序表中的合適的存放位置即為c。

(1) (3分)給出適用於計數排序的資料表定義;

(2) (7分)使用pascal或c語言編寫實現計數排序的演算法;

(3) (4分)對於有n個記錄的表,關鍵碼比較次數是多少?

(4) (3分)與簡單選擇排序相比較,這種方法是否更好?為什麼?

4、根據二叉排序樹中序遍歷所得結點值為增序的性質,在遍歷中將當前遍歷結點與其前驅結點值比較,即可得出結論,為此設全域性指標變數pre(初值為null)和全域性變數flag,初值為true。若非二叉排序樹,則置flag為false。

#define true 1

#define false 0

typedef struct node

*btree;

void judgebst(btree t,int flag)

// 判斷二叉樹是否是二叉排序樹,本演算法結束後,在呼叫程式中由flag得出結論。

//不是完全二叉樹

judgebst (t->rlink,flag);// 中序遍歷右子樹

}//judgebst演算法結束

2023年廣東省理論資料高階

1 1 p rchild 2 p lchild 3 p lchild 4 addq q,p lchild 5 addq q,p rchild 25.1 t rchild null 2 t rchild null 3 n0 4 count t lchild 5 count t rchild 26.1 ...

2023年廣東省資料高階

1 設一棵樹t中邊的集合為,要求用孩子兄弟表示法 二叉鍊錶 表示出該樹的儲存結構並將該樹轉化成對應的二叉樹。2 假設以鄰接矩陣作為圖的儲存結構,編寫演算法判別在給定的有向圖中是否存在乙個簡單有向迴路,若存在,則以頂點序列的方式輸出該迴路 找到一條即可 注 圖中不存在頂點到自己的弧 有向圖判斷迴路要比...

2023年廣東省資料總結高階

1 二部圖 bipartite graph g v,e 是乙個能將其結點集v分為兩不相交子集v 1和v2 v v1的無向圖,使得 v1中的任何兩個結點在圖g中均不相鄰,v2中的任何結點在圖g中也均不相鄰。1 請各舉乙個結點個數為5的二部圖和非二部圖的例子。2 請用c或pascal編寫乙個函式bipa...