2023年廣西壯族自治區資料總結深入

2021-11-01 18:02:56 字數 905 閱讀 9469

1、本題應使用深度優先遍歷,從主調函式進入dfs(v)時 ,開始記數,若退出dfs()前,已訪問完有向圖的全部頂點(設為n個),則有向圖有根,v為根結點。將n個頂點從1到n編號,各呼叫一次dfs()過程,就可以求出全部的根結點。題中有向圖的鄰接表儲存結構、記頂點個數的變數、以及訪問標記陣列等均設計為全域性變數。

建立有向圖g的鄰接表儲存結構參見上面第2題,這裡只給出判斷有向圖是否有根的演算法。

int num=0, visited=0 //num記訪問頂點個數,訪問陣列visited初始化。

const n=使用者定義的頂點數;

adjlist g用鄰接表作儲存結構的有向圖g。

void dfs(v)

//if

p=g[v].firstarc;

while (p)

//while

visited[v]=0; num--; //恢復頂點v

}//dfs

void judgeroot()

//判斷有向圖是否有根,有根則輸出之。

}// judgeroot

演算法中列印根時,輸出頂點在鄰接表中的序號(下標),若要輸出頂點資訊,可使用g[i].vertex。

2、給定n個村莊之間的交通圖,若村莊i和j之間有道路,則將頂點i和j用邊連線,邊上的wij表示這條道路的長度,現在要從這n個村莊中選擇乙個村莊建一所醫院,問這所醫院應建在哪個村莊,才能使離醫院最遠的村莊到醫院的路程最短?試設計乙個解答上述問題的演算法,並應用該演算法解答如圖所示的例項。(20分)

3、氣泡排序演算法是把大的元素向上移(氣泡的上浮),也可以把小的元素向下移(氣泡的下沉)請給出上浮和下沉過程交替的氣泡排序演算法。

48.有n個記錄儲存在帶頭結點的雙向鍊錶中,現用雙向起泡排序法對其按上公升序進行排序,請寫出這種排序的演算法。(注:雙向起泡排序即相鄰兩趟排序向相反方向起泡)

廣西壯族自治區概況

一 概況 廣西壯族自治區簡稱桂,地處祖國南疆,位於東經104 26 112 04 北緯20 54 26 24 之間,北回歸線橫貫全區中部。廣西區位優越,南臨北部灣,面向東南亞,西南與越南毗鄰,東鄰粵 港 澳,北連華中,背靠大西南。是西南地區最便捷的出海通道,也是中國西部資源型經濟與東南開放型經濟的結...

2023年廣西壯族自治區資料總結加強

1 給定n個村莊之間的交通圖,若村莊i和j之間有道路,則將頂點i和j用邊連線,邊上的wij表示這條道路的長度,現在要從這n個村莊中選擇乙個村莊建一所醫院,問這所醫院應建在哪個村莊,才能使離醫院最遠的村莊到醫院的路程最短?試設計乙個解答上述問題的演算法,並應用該演算法解答如圖所示的例項。20分 2 題...

2023年廣西壯族自治區資料總結高階

1 設有兩個集合a和集合b,要求設計生成集合c a b的演算法,其中集合a b和c用鏈式儲存結構表示。typedef struct node lklist void intersection lklist ha,lklist hb,lklist hc 2 將頂點放在兩個集合v1和v2。對每個頂點,檢...