最小生成樹問題 若要在n個城市之間建設通信網絡,只需要架設n-1條線路即可。如何以最低的經濟代價建設這個通信網,是一個網的最小生成樹問題。 (1)利用克魯斯卡爾算法求網的最小生成樹。 (2)實現教科書6.5節中定義的抽象樹類型 MFSet。以此表示構造生成樹過程中的連通分量。 (3)以文本形式輸出生成樹中各條邊以及他們的權值。
上傳時間: 2015-11-10
上傳用戶:jhksyghr
排列問題 M個1,N個0的排列(高效率版) 排列數為:c(m+n,n) 對n個0,m個1,我的想法是這樣的: 每個排列可以分三段: 全0列,全1列, 子問題列 設各段長:r,s,t .子問題列就是 (n,m) = (n-r,m-s),其中0<=r<=n,s=1
上傳時間: 2015-11-11
上傳用戶:1051290259
74hc595驅動 gcc編譯 n個級連只要輸出n個字節后加一個鎖存時鐘(下降沿)
上傳時間: 2015-11-11
上傳用戶:TF2015
哲學家進餐問題是荷蘭學者Dijkstra 提出的經典問題之一,它是一個信號量機制問題的應用,在操作系統文化史上具有非常重要的地位。對該問題的剖析有助于學生深刻地理解計算機系統中的資源共享、進程同步、死鎖等問題,并能熟練地應用信號量來解決生活中的控制流程,即將生活中的控制流程用形式化的方式表達出來。 假設有5個哲學家,他們花費一生中的時光思考和吃飯。這些哲學家共用一個圓桌,每個哲學家都有一把椅子。在桌子中央是一碗通心面,在桌子上放著5只筷子。(如圖所示)當一個哲學家思考時,他與其他同事不交互。時而,哲學家會感到饑餓,并試圖拿起與他相近的兩只筷子(他與鄰近左、右之間的筷子)。一個哲學家一次只能拿起一只筷子。顯然,他不能從其他哲學家手里拿走筷子。當一個饑餓的哲學家同時有兩只筷子時,他就不能不用釋放他的筷子而自己吃了。當吃完后,他會放下兩只筷子,并再次開始思考。 規定奇數號哲學家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數號哲學家則相反。按此規定,將是1、 2號哲學家競爭1號筷子;3、4號哲學家競爭3號筷子。即五位哲學家都先競爭奇數號筷子,獲得后,再去競爭偶數號筷子,最后總會有一位哲學家能獲得兩只筷子而進餐。
上傳時間: 2013-12-10
上傳用戶:zhangzhenyu
哲學家進餐問題是荷蘭學者Dijkstra 提出的經典問題之一,它是一個信號量機制問題的應用,在操作系統文化史上具有非常重要的地位。對該問題的剖析有助于學生深刻地理解計算機系統中的資源共享、進程同步、死鎖等問題,并能熟練地應用信號量來解決生活中的控制流程,即將生活中的控制流程用形式化的方式表達出來。 假設有5個哲學家,他們花費一生中的時光思考和吃飯。這些哲學家共用一個圓桌,每個哲學家都有一把椅子。在桌子中央是一碗通心面,在桌子上放著5只筷子。(如圖所示)當一個哲學家思考時,他與其他同事不交互。時而,哲學家會感到饑餓,并試圖拿起與他相近的兩只筷子(他與鄰近左、右之間的筷子)。一個哲學家一次只能拿起一只筷子。顯然,他不能從其他哲學家手里拿走筷子。當一個饑餓的哲學家同時有兩只筷子時,他就不能不用釋放他的筷子而自己吃了。當吃完后,他會放下兩只筷子,并再次開始思考。 規定奇數號哲學家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數號哲學家則相反。按此規定,將是1、 2號哲學家競爭1號筷子;3、4號哲學家競爭3號筷子。即五位哲學家都先競爭奇數號筷子,獲得后,再去競爭偶數號筷子,最后總會有一位哲學家能獲得兩只筷子而進餐。
上傳時間: 2014-01-23
上傳用戶:teddysha
n后問題,實現n后問題的求解,并且可以輸出最有解
標簽: 輸出
上傳時間: 2015-11-13
上傳用戶:chens000
精通正則表達式,是一本好書。??上Ь褪荅文。。還沒找到中文。見量!
上傳時間: 2014-12-20
上傳用戶:trepb001
實現NFA確定化子集算法程序。DFA是NFA的特例。對每個NFA N一定存在一個DFA M ,使得 L(M)=L(N)。對每個NFA N存在著與之等價的DFA M。從NFA的矩陣表示中可以看出,表項通常是一狀態的集合,而在DFA的矩陣表示中,表項是一個狀態,NFA到相應的DFA的構造的基本思路是:1.DFA的每一個狀態對應NFA的一組狀態. 2. DFA使用它的狀態去記錄在NFA讀入一個輸入符號后可能達到的所有狀態.。
上傳時間: 2014-01-19
上傳用戶:h886166
[輸入] 圖的頂點個數N,圖中頂點之間的關系及起點A和終點B [輸出] 若A到B無路徑,則輸出“There is no path” 否則輸出A到B路徑上個頂點 [存儲結構] 圖采用鄰接矩陣的方式存儲。 [算法的基本思想] 采用廣度優先搜索的方法,從頂點A開始,依次訪問與A鄰接的頂點VA1,VA2,...,VAK, 訪問遍之后,若沒有訪問B,則繼續訪問與VA1鄰接的頂點VA11,VA12,...,VA1M,再訪問與VA2鄰接頂點...,如此下去,直至找到B,最先到達B點的路徑,一定是邊數最少的路徑。實現時采用隊列記錄被訪問過的頂點。每次訪問與隊頭頂點相鄰接的頂點,然后將隊頭頂點從隊列中刪去。若隊空,則說明到不存在通路。在訪問頂點過程中,每次把當前頂點的序號作為與其鄰接的未訪問的頂點的前驅頂點記錄下來,以便輸出時回溯。 #include<stdio.h> int number //隊列類型 typedef struct{ int q[20]
標簽: 輸入
上傳時間: 2015-11-16
上傳用戶:ma1301115706
[問題描述] 將N個關鍵字去整數的記錄進行整序, 以使所有關鍵字為非負數的記錄排在關鍵字為負數的記錄之前,要求使用最少的附加空間,且算法的時間復雜度為O(N) [輸入] 待排序記錄個數,各關鍵字的值。 [輸出] 關鍵字從正負分開,正數在前 [存儲結構] 待排序記錄順序存儲。 [算法的基本思想] 快速排序算法每次任取一個記錄的關鍵字為標準,將其余記錄分為兩組將,N個關鍵字去整數的記錄進行整序, 以使所有關鍵字為非負數的記錄排在關鍵字為負數的記錄之前。 #include <iostream> using namespace std #define MAXNUM 100//設文件的最長可能長度 void sort(int* keys, const int len)//排序
上傳時間: 2014-01-13
上傳用戶:aig85