版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 數(shù)據(jù)結(jié)構(gòu)(JAVA)課程設(shè)計(jì)</p><p> 題 目:____最小生成樹_______</p><p> 學(xué)生姓名:_****___________</p><p> 學(xué) 號(hào):_____*******_______</p><p> 院 系: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院</p><p> 專
2、業(yè)年級(jí): ______*****___級(jí)</p><p><b> 目錄</b></p><p> 1.設(shè)計(jì)題目................................................1</p><p> 2.需求分析................................................1
3、</p><p> 1)運(yùn)行環(huán)境................................................1</p><p> 2)輸入的形式和輸入值的范圍................................1</p><p> 3)輸出的形式描述........................................
4、..1</p><p> 4)功能描述................................................1</p><p> 5)測(cè)試數(shù)據(jù)...............................................1</p><p> 3.概要設(shè)計(jì).................................
5、...............1</p><p> 1)抽象數(shù)據(jù)類型定義描述...................................1</p><p> .2)功能模塊設(shè)計(jì)..........................................1</p><p> 3)模塊層次調(diào)用關(guān)系圖........................
6、..............2</p><p> 4.詳細(xì)設(shè)計(jì)。實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的類的定義及類中成員函數(shù),并對(duì)主要的模塊寫出偽碼算法。...........................2</p><p> 5.調(diào)試分析。包括調(diào)試過程中遇到的問題及解決的方法、算法的時(shí)間空間復(fù)雜性分析、經(jīng)驗(yàn)體會(huì)。.................................6</p&
7、gt;<p> 6.用戶使用說明。詳細(xì)列出每一步的操作說明。.................7</p><p> 7. 測(cè)試結(jié)果...............................................7</p><p> 8.附錄:程序設(shè)計(jì)源代碼.....................................9</p>&
8、lt;p><b> 一、設(shè)計(jì)題目</b></p><p><b> 1).問題描述</b></p><p> 若要在 n 個(gè)城市之間建設(shè)通信網(wǎng)絡(luò),只需要架設(shè)n-1 條線路即可。如何以最低的經(jīng)濟(jì)代價(jià)建設(shè)這個(gè)通信網(wǎng),是一個(gè)網(wǎng)的最小生成樹問題。</p><p><b> 2). 基本要求</b>
9、;</p><p> 以鄰接多重表存儲(chǔ)無向帶權(quán)圖,利用克魯斯卡爾算法或普瑞姆算法求網(wǎng)的最小生成樹。</p><p><b> 二、需求分析</b></p><p><b> 1)運(yùn)行環(huán)境</b></p><p> 軟件在JDK運(yùn)行,硬件支持windows系統(tǒng)</p><p
10、> 輸入的形式和輸入值的范圍</p><p> 自動(dòng)生成頂點(diǎn)數(shù)據(jù)在10~20之間;各個(gè)頂點(diǎn)之間權(quán)值在25~50之間;通過程序改動(dòng)亦可生成已知頂點(diǎn)權(quán)值之間的最小生成樹,需將隨機(jī)生成代碼改為</p><p> edge edge[]={new edge(0,1,16),new(0,2,18)......};</p><p> 將已知頂點(diǎn)、權(quán)值通過其函數(shù)輸入
11、再生成其所對(duì)應(yīng)最小生成樹。</p><p><b> 輸出的形式描述</b></p><p> 輸出隨機(jī)生成頂點(diǎn)個(gè)數(shù)以及各個(gè)頂點(diǎn)之間權(quán)值;然后輸出本次生成頂點(diǎn)之間構(gòu)成的最小生成樹。</p><p><b> 功能描述</b></p><p> 該程序會(huì)自動(dòng)生成介于10~20個(gè)數(shù)頂點(diǎn)模擬各城市
12、,再隨機(jī)生成介于25~50之間數(shù)值作為權(quán)值模擬各個(gè)城市間的距離,并同時(shí)生成此次頂點(diǎn)、權(quán)值相對(duì)應(yīng)的最小生成樹,模擬各城市間的最小距離,最小生成樹。如有確定城市頂點(diǎn)及其權(quán)值,則可改動(dòng)程序令其不再隨機(jī)生成頂點(diǎn)權(quán)值,在程序中輸入如下代碼:</p><p> edge edge[]={new edge(0,1,16),new(0,2,18)......}</p><p> 輸入數(shù)組為edge數(shù)組
13、,edge(起點(diǎn),終點(diǎn),權(quán)值)。通過將隨機(jī)生成代碼改動(dòng)就可以生成該城市對(duì)應(yīng)權(quán)值的最小生成樹。</p><p><b> 5)測(cè)試數(shù)據(jù)</b></p><p> 生成數(shù)據(jù)之后檢驗(yàn)生成頂點(diǎn)數(shù)值是否介于10~20之間;檢驗(yàn)各頂點(diǎn)間權(quán)值大小是否介于25~50間;同時(shí)檢驗(yàn)其自動(dòng)生成最小生成樹是否正確。</p><p><b> 三、概要設(shè)
14、計(jì)</b></p><p> 1)抽象數(shù)據(jù)類型定義描述</p><p> 定義排序類sort,將各個(gè)頂點(diǎn)按照其兩頂點(diǎn)之間權(quán)值大小排序,從大到小排序,用到堆排序算法;</p><p> 定義帶權(quán)值的邊edge,分別存在start(起點(diǎn))、end(終點(diǎn))、value(權(quán)值)三個(gè)變量;</p><p> 定義main類,調(diào)用so
15、rt、edge類與自身函數(shù)通過Kruskal函數(shù)實(shí)現(xiàn)最小生成樹。</p><p><b> 2)功能模塊設(shè)計(jì)</b></p><p> 主函數(shù)隨機(jī)生成10~20個(gè)頂點(diǎn)作為城市并同時(shí)生成任意兩頂點(diǎn)間25~50的權(quán)值作為兩城市距離;在界面輸出隨機(jī)生成頂點(diǎn)個(gè)數(shù)及任意兩頂點(diǎn)間權(quán)值;再調(diào)用sort函數(shù)對(duì)權(quán)進(jìn)行排序,按照權(quán)值的大小有小到大排序;排序之后實(shí)現(xiàn)Kruskal函數(shù),
16、通過kruskal函數(shù)生成最小生成樹;最后輸出所生成的最小生成樹。</p><p> 3)模塊層次調(diào)用關(guān)系圖</p><p><b> 四、詳細(xì)設(shè)計(jì)</b></p><p> 實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的類的定義及類中成員函數(shù),并對(duì)主要的模塊</p><p><b> 寫出偽碼算法。</b>&
17、lt;/p><p> 定義帶權(quán)值的邊及其三個(gè)變量start(起點(diǎn))、end(終點(diǎn))、value(權(quán)值);定義該屬性為下邊的根據(jù)權(quán)值排序、Kruskal實(shí)現(xiàn)最小生成樹做下鋪墊;函數(shù)實(shí)現(xiàn)如下:</p><p> package tree;</p><p> public class sort {</p><p> public static
18、void sift(edge a[], int root, int limit)</p><p><b> {</b></p><p> int i = root;</p><p> int j = i*2+1;//j為i的左孩子</p><p> while (j <= limit) //沿較小值孩子節(jié)點(diǎn)
19、向下篩選</p><p><b> {</b></p><p> if (j < limit && a[j].getValue() < a[j + 1].getValue())//數(shù)組元素比較</p><p><b> {</b></p><p> j++;//j
20、為左右孩子的較小者</p><p><b> }</b></p><p> if (a[j].getValue() > a[i].getValue()) //若父親節(jié)點(diǎn)值較大</p><p><b> {</b></p><p> edge e = a[i];//孩子節(jié)點(diǎn)中較小值上移&
21、lt;/p><p> a[i] = a[j];</p><p><b> a[j] = e;</b></p><p><b> i = j;</b></p><p> j = i * 2 + 1;//i、j向下一層</p><p><b> }</b&g
22、t;</p><p><b> else{</b></p><p> break; //跳出循環(huán)</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
23、/p><p> public static void sort(edge data[])</p><p><b> {</b></p><p> int length = data.length;</p><p> for(int i = length/2-1; i>=0; i--)//創(chuàng)建最大堆</p&
24、gt;<p><b> {</b></p><p> sift(data, i, length-1);</p><p><b> }</b></p><p> for (int j = length - 1; j > 0; j--)//每趟把最大值交換到后面字,再生成堆</p>&
25、lt;p><b> {</b></p><p> edge e = data[0];</p><p> data[0] = data[j];</p><p> data[j] = e;</p><p> sift(data, 0, j-1);</p><p><b>
26、}</b></p><p><b> }</b></p><p><b> }</b></p><p> 隨機(jī)生成介于10~20之間個(gè)頂點(diǎn)作為各個(gè)城市,并同時(shí)生成任意兩頂點(diǎn)間權(quán)值,介于25~50之間;每n個(gè)頂點(diǎn)之間最多生成n*(n-1)條邊;生成vertexNumber-1個(gè)row(行)和row-1個(gè)co
27、lumn(列)可以防止同一個(gè)頂點(diǎn)生成自環(huán);</p><p><b> 函數(shù)實(shí)現(xiàn)如下:</b></p><p> int vertexNumber=(int)((Math.random()+1)*10);</p><p> System.out.println("隨機(jī)生成"+vertexNumber+"個(gè)頂點(diǎn)&
28、quot;);</p><p> edge edges[]=new edge[vertexNumber*(vertexNumber-1)/2];</p><p> for(int row=0, index=0; row<vertexNumber; row++)</p><p> {//row行、column列、index數(shù)組</p><
29、;p> for(int column=0; column<row; column++)</p><p><b> {</b></p><p> int x=(int)((Math.random()+1)*25);//random隨機(jī)的</p><p> edges[index] = new edge(row, column,
30、 x);</p><p> System.out.println("頂點(diǎn)"+row+"和"+column+"之間的距離為"+x);</p><p><b> index++;</b></p><p><b> }</b></p><p&g
31、t;<b> }</b></p><p> 定義排序類sort,按照堆排序函數(shù)對(duì)數(shù)組edge[]按照權(quán)值大小從小到大進(jìn)行排序(參照課本299頁);</p><p> package tree;</p><p> public class sort {</p><p> public static void si
32、ft(edge a[], int root, int limit)</p><p><b> {</b></p><p> int i = root;</p><p> int j = i*2+1;//j為i的左孩子</p><p> while (j <= limit) //沿較小值孩子節(jié)點(diǎn)向下篩選<
33、;/p><p><b> {</b></p><p> if (j < limit && a[j].getValue() < a[j + 1].getValue())//數(shù)組元素比較</p><p><b> {</b></p><p> j++;//j為左右孩子的較
34、小者</p><p><b> }</b></p><p> if (a[j].getValue() > a[i].getValue()) //若父親節(jié)點(diǎn)值較大</p><p><b> {</b></p><p> edge e = a[i];//孩子節(jié)點(diǎn)中較小值上移</p&g
35、t;<p> a[i] = a[j];</p><p><b> a[j] = e;</b></p><p><b> i = j;</b></p><p> j = i * 2 + 1;//i、j向下一層</p><p><b> }</b></
36、p><p><b> else{</b></p><p> break; //跳出循環(huán)</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
37、<p> public static void sort(edge data[])</p><p><b> {</b></p><p> int length = data.length;</p><p> for(int i = length/2-1; i>=0; i--)//創(chuàng)建最大堆</p>&l
38、t;p><b> {</b></p><p> sift(data, i, length-1);</p><p><b> }</b></p><p> for (int j = length - 1; j > 0; j--)//每趟把最大值交換到后面字,再生成堆</p><p>
39、;<b> {</b></p><p> edge e = data[0];</p><p> data[0] = data[j];</p><p> data[j] = e;</p><p> sift(data, 0, j-1);</p><p><b> }</b
40、></p><p><b> }</b></p><p><b> }</b></p><p> Kruskal方法實(shí)現(xiàn)最小生成樹。</p><p> Kruskal方法與Prim方法都是基于最小生成樹的MST性質(zhì):設(shè)G(V,E)是一個(gè)聯(lián)通帶權(quán)無向圖,TV是頂點(diǎn)集合V的一個(gè)非空真子集。
41、若(tv,v)包含于E是一條權(quán)值最小的邊,其中tv包含于TV,v包含于V-TV,則必定存在G的一棵最小生成樹T,T包含邊(tv,v)。其Kruskal算法參照課本334頁。其算法如下:</p><p> int a[] = new int[vertexNumber];</p><p> //初始時(shí)刻,所有頂點(diǎn)的連通分量編號(hào)為-1,表示所有頂點(diǎn)都屬于一個(gè)獨(dú)立的連通分量</p>
42、<p> for(int i = 0; i<a.length; i++)</p><p><b> {</b></p><p> a[i] = -1;</p><p><b> }</b></p><p> edge result[] = new edge[vertex
43、Number-1];</p><p> //該數(shù)組用于記錄最小生成樹</p><p> int temp = 0;</p><p> for(edge e : edges){</p><p> int start = e.getStart();</p><p> int end = e.getEnd();&l
44、t;/p><p> if(a[start]==a[end] && a[end]==-1){</p><p> a[start] = a[end] = temp;</p><p> result[temp] = e;</p><p><b> temp++;</b></p><p&g
45、t;<b> }</b></p><p> else if (a[start] != a[end]) {</p><p> if (a[start] == -1) {</p><p> a[start] = a[end];</p><p><b> }</b></p><
46、;p> else if (a[end] == -1) {</p><p> a[end] = a[start];</p><p><b> }</b></p><p><b> else {</b></p><p> int t = a[start];</p><
47、p> for (int i = 0; i < vertexNumber; i++) {</p><p> if (a[i] == t) {</p><p> a[i] = a[end];</p><p><b> }</b></p><p><b> }</b></p&g
48、t;<p><b> }</b></p><p> result[temp] = e;</p><p><b> temp++;</b></p><p><b> }</b></p><p><b> 五、調(diào)試分析</b></
49、p><p> 包括調(diào)試過程中遇到的問題及解決的方法、算法的時(shí)間空間復(fù)雜性分析、</p><p><b> 經(jīng)驗(yàn)體會(huì)。</b></p><p> Sort排序類算法時(shí)間復(fù)雜度為O(log2n),Kruskal算法時(shí)間復(fù)雜度為O(1);</p><p> 調(diào)試過程中,Kruskal算法實(shí)現(xiàn)出現(xiàn)問題,剛開始無法實(shí)現(xiàn)該函數(shù),
50、無法生成最小生成樹;經(jīng)請(qǐng)教同學(xué)、查看資料、查看課本解決問題。實(shí)現(xiàn)堆排序過程無法實(shí)現(xiàn),參考課本之后解得堆排序算法實(shí)現(xiàn)過程:調(diào)用sift()方法n/2次,使得數(shù)據(jù)序列成為最大堆;對(duì)j=n-1,n-2...1,執(zhí)行下列n-1次完成排序操作:交換根end[0]和元素end[j],調(diào)用sift()方法將end[j]的前j個(gè)元素調(diào)整成最大堆。</p><p> 在編程過程中如遇難題可對(duì)其題目進(jìn)行認(rèn)真分析,然后參考課本或者其
51、他資料已現(xiàn)有代碼亦或聞詢他人幫助,在自己查詢或者問詢他人過程中也是自己學(xué)習(xí)的過程,可以從中學(xué)習(xí)到很多知識(shí)。</p><p><b> 用戶使用說明</b></p><p> 程序運(yùn)行后會(huì)自動(dòng)跳出10~20個(gè)隨機(jī)頂點(diǎn)作為各個(gè)城市,同時(shí)隨機(jī)生成25~50的權(quán)值x,并生成此次所有頂點(diǎn)及其權(quán)值構(gòu)成的最小生成樹。</p><p><b>
52、 測(cè)試結(jié)果</b></p><p> 1.生成0-12共13個(gè)頂點(diǎn):</p><p> 2.生成最小生成樹為:</p><p> 程序隨機(jī)自動(dòng)生成介于10~20之間個(gè)頂點(diǎn)正確運(yùn)行,隨機(jī)自動(dòng)生成介于25~50之間權(quán)值正確運(yùn)行,使得任意兩頂點(diǎn)之間權(quán)值于25~50之間;經(jīng)驗(yàn)證該生成樹為最小生成樹,程序運(yùn)行正確。</p><p>
53、 最小生成樹定義:設(shè)G是一個(gè)帶權(quán)連通無向圖,w(e)是邊e上的權(quán),T是G的生成樹,T中各邊的權(quán)值之和稱為生成樹T的權(quán)值或者代價(jià)(cost)。權(quán)值最小的生成樹稱之為最小生成樹(minimum cost spanning tree),簡(jiǎn)稱最小生成樹。</p><p> 八、附錄:程序設(shè)計(jì)源代碼</p><p> package tree;</p><p> pub
54、lic class sort {</p><p> public static void sift(edge a[], int root, int limit)</p><p><b> {</b></p><p> int i = root;</p><p> int j = i*2+1;//j為i的左孩子&l
55、t;/p><p> while (j <= limit) //沿較小值孩子節(jié)點(diǎn)向下篩選</p><p><b> {</b></p><p> if (j < limit && a[j].getValue() < a[j + 1].getValue())//數(shù)組元素比較</p><p>
56、;<b> {</b></p><p> j++;//j為左右孩子的較小者</p><p><b> }</b></p><p> if (a[j].getValue() > a[i].getValue()) //若父親節(jié)點(diǎn)值較大</p><p><b> {</b&
57、gt;</p><p> edge e = a[i];//孩子節(jié)點(diǎn)中較小值上移</p><p> a[i] = a[j];</p><p><b> a[j] = e;</b></p><p><b> i = j;</b></p><p> j = i * 2 +
58、 1;//i、j向下一層</p><p><b> }</b></p><p><b> else{</b></p><p> break; //跳出循環(huán)</p><p><b> }</b></p><p><b> }<
59、/b></p><p><b> }</b></p><p> public static void sort(edge data[]){</p><p> int length = data.length;</p><p> for(int i = length/2-1; i>=0; i--)//創(chuàng)
60、建最大堆</p><p><b> {</b></p><p> sift(data, i, length-1);</p><p><b> }</b></p><p> for (int j = length - 1; j > 0; j--)//每趟把最大值交換到后面字,再生成堆&l
61、t;/p><p><b> {</b></p><p> edge e = data[0];</p><p> data[0] = data[j];</p><p> data[j] = e;</p><p> sift(data, 0, j-1);</p><p>
62、<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> package tree;</p><p> public class edge {</p><p> private int
63、 start, end, value;//定義開始、結(jié)束、權(quán)值</p><p> public edge(int start,int end,int value){</p><p> this.start=start;</p><p> this.end=end;</p><p> this.value=value;</p>
64、;<p><b> }</b></p><p> public int getStart() {</p><p> return start;</p><p><b> }</b></p><p> public void setStart(int start) {</
65、p><p> this.start = start;</p><p><b> }</b></p><p> public int getEnd() {</p><p> return end;</p><p><b> }</b></p><p&g
66、t; public void setEnd(int end) {</p><p> this.end = end;</p><p><b> }</b></p><p> public int getValue() {</p><p> return value;</p><p><
67、;b> }</b></p><p> public void setValue(int value) {</p><p> this.value = value;</p><p><b> }</b></p><p><b> }</b></p><p
68、> package tree;</p><p> public class main </p><p><b> {</b></p><p> public static void main(String args[])</p><p><b> {</b></p>&
69、lt;p> int vertexNumber=(int)((Math.random()+1)*10);</p><p> System.out.println("隨機(jī)生成"+vertexNumber+"個(gè)頂點(diǎn)");</p><p> edge edges[]=new edge[vertexNumber*(vertexNumber-1)/2
70、];</p><p> for(int row=0, index=0; row<vertexNumber; row++)</p><p> {//row行、column列、index數(shù)組</p><p> for(int column=0; column<row; column++)</p><p><b> {
71、</b></p><p> int x=(int)((Math.random()+1)*25);//random隨機(jī)的</p><p> edges[index] = new edge(row, column, x);</p><p> System.out.println("頂點(diǎn)"+row+"和"+colu
72、mn+"之間的距離為"+x);</p><p><b> index++;</b></p><p><b> }</b></p><p><b> }</b></p><p> sort.sort(edges);//對(duì)數(shù)組 edges[]中的值進(jìn)行堆
73、排序</p><p> int a[] = new int[vertexNumber];</p><p> for(int i = 0; i<a.length; i++)</p><p> //初始時(shí)刻,所有頂點(diǎn)的連通分量編號(hào)為-1,表示所有頂點(diǎn)都屬于一個(gè)獨(dú)立的連通分量</p><p><b> {</b>
74、</p><p> a[i] = -1;//a[i]的值表示第i個(gè)頂點(diǎn)所屬的連通分量編號(hào)</p><p><b> }</b></p><p> //該數(shù)組用于記錄最小生成樹</p><p> edge result[] = new edge[vertexNumber-1];</p><p&
75、gt; int temp = 0;</p><p> for(edge e : edges){</p><p> int start = e.getStart();</p><p> int end = e.getEnd();</p><p> if(a[start]==a[end] && a[end]==-1)//
76、只要將要加入result[]的edges的兩個(gè)頂點(diǎn)相等都為-1,</p><p> //說明不和result[]中的已經(jīng)加入的聯(lián)通分量有關(guān)系,則可以直接加入result[]。</p><p><b> {</b></p><p> a[start] = a[end] = temp;</p><p> result
77、[temp] = e;</p><p><b> temp++;</b></p><p><b> }</b></p><p> else if (a[start] != a[end]) </p><p><b> {</b></p><p>
78、 if (a[start] == -1) </p><p> //start=-1為懸空頂點(diǎn),那么就讓start=end,使加入的連通分量和其連接的result[]中連通分量的標(biāo)識(shí)統(tǒng)一。</p><p><b> {</b></p><p> a[start] = a[end];</p><p><b>
79、 }</b></p><p> else if (a[end] == -1) </p><p> //end=-1為懸空頂點(diǎn),那么就讓end=start,使加入的連通分量和其連接的result[]中連通分量的標(biāo)識(shí)統(tǒng)一。</p><p><b> {</b></p><p> a[end] = a[s
80、tart];</p><p><b> }</b></p><p><b> else {</b></p><p> int t = a[start];</p><p> for (int i = 0; i < vertexNumber; i++) </p><p&
81、gt; //要加入的edges使得result中的兩個(gè)不同的連通分量連接起來,需將一個(gè)和另外一個(gè)進(jìn)行統(tǒng)一</p><p> //遍歷所有的頂點(diǎn)如果值和start相等就都等于end,則兩個(gè)連通分量進(jìn)行了統(tǒng)一</p><p><b> {</b></p><p> if (a[i] == t) </p><p>&l
82、t;b> {</b></p><p> a[i] = a[end];</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> result[temp
83、] = e;//得到了result[]</p><p><b> temp++;</b></p><p><b> }</b></p><p> //System.out.println("------------");</p><p> //System.out.pri
84、ntln(Arrays.toString(a));</p><p> if(temp == vertexNumber-1)</p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p>
85、<p><b> }</b></p><p> System.out.println("最小生成樹為:");</p><p> for(edge e : result)</p><p><b> {</b></p><p> System.out.printl
86、n("連接頂點(diǎn)"+e.getStart()+"和"+e.getEnd()+"該邊的權(quán)值為"+e.getValue());</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--最小生成樹
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-最小生成樹
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-最小生成樹問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--最小生成樹
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)--最小生成樹問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---最小生成樹問題
- 最小生成樹課程設(shè)計(jì)
- 最小生成樹課程設(shè)計(jì)
- 最小生成樹課程設(shè)計(jì)
- 最小生成樹課程設(shè)計(jì) (2)
- 最小生成樹求解課程設(shè)計(jì)報(bào)告
- 普里姆算法生成最小生成樹課程設(shè)計(jì)
- 徐州工程學(xué)院數(shù)據(jù)結(jié)構(gòu)最小生成樹實(shí)驗(yàn)文檔
- 數(shù)據(jù)結(jié)構(gòu),最小生成樹克魯斯卡爾算法的實(shí)現(xiàn)
- 課程設(shè)計(jì)---克魯斯卡爾算法求最小生成樹
- 4最小生成樹
- 4最小生成樹
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 圖的遍歷和生成樹求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-----最小套圈設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---圖的遍歷和生成樹求解
評(píng)論
0/150
提交評(píng)論