高普考題庫
98 年 098年公務人員高等考試三級考試暨普通考試

資料結構

本卷皆為申論題,點「看答案與解析」查看擬答。

申論 1二元樹(binary tree)㈠有一個二元樹(binary tree)的中序走訪(inorder traversal)順序為ABCDEFGHI,它的後序走訪(postorder traversal)順序為BACFEIHGD,其中每個英文字母代表一個節點。請畫出此二元樹。(6 分)㈡上述二元樹的前序走訪(preorder traversal)順序為何?(6 分)㈢在二元搜尋樹(binary search tree)中,那一個走訪順序(前序、中序或後序)正好為排序好的情況?原因何在?(本小題未寫明原因者,不給分)(6 分)㈣如何利用線性掃瞄方式,判斷一個前序運算式(prefix expression)是否合法?(7 分)
申論 2解釋下列名詞:(每小題5 分共25 分)㈠AVL 樹(AVL tree)㈡解釋圖形(graph)名詞:漢米爾頓迴路(Hamiltonian circuit)㈢解釋圖形(graph)名詞:廣度優先搜尋(breadth first search)。以程式實作此搜尋時,該使用那一種資料結構?㈣C++或JAVA 語言中,protected 之意義㈤Hanoi towers problem
申論 3假設有下列數種排序方法:(A)bubble sort (B)quick sort (C)heap sort (D)merge sort(E)radix sort (F)insertion sort。回答下列問題時,請分別以ABCDEF 之代號答之。(每小題6 分共24 分)㈠一個排序法,在輸入資料中有多筆相同資料時,於排序前與排序後,任兩筆相同的資料前後順序不變者,稱之為「穩定排序法」。請問那些排序法為穩定排序法?㈡假設輸入資料有n 個,在最糟情形下,那些排序法的時間複雜度為O(nlogn)?㈢排序程式實作時,那些排序法需要額外的陣列或鏈結串列?㈣在程式實作時,一般使用陣列進行排序。有些時候也需要對鏈結串列進行排序。那些排序法無法對單向鏈結串列(linearly linked list)進行排序?年公務人員高等考試三級考試試題 代號:35650類 科: 資訊處理科 目: 資料結構
申論 4假設有一個C 語言函式如下(左側數字為列號,非程式之一部分):1 int f(int n)2 {3 if (n == 0)4 return(0);5 if (n == 1)6 return(1);7 printf("ADD ");8 return (f (n-1) + f (n-2));9 }㈠以f(4)呼叫上面函式,會列印出多少個"ADD"?(6 分)㈡如果以f(n)呼叫上面函式,n 為任意正整數,程式執行完畢後,會列印出多少個"ADD"?請推導其通式(只要推導出其關係式即可)。(12 分)㈢在忽略第7 列的情形下,可將上面函式改寫成更有效率的函式如下。請完成第10~12 列的程式內容。(8 分)1 int f(int n)2 {3 int i, a,b,c;4 if (n <= 1)5 return(n);6 a=0;7 b=1;8 for (i = 2; i <= n; i++)9 {13 } // end of for14 return (c);15 }