資源描述:
《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)地圖著色問(wèn)題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、實(shí)用文檔課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:地圖著色問(wèn)題專業(yè):xxxxxxxxx班級(jí):xxxxxxxxx姓名:xxxxxxxxx文案大全實(shí)用文檔一:需求分析:1)已知中國(guó)地圖,對(duì)各省進(jìn)行著色,要求相鄰省所使用的顏色不同,并保證使用的顏色總數(shù)最少;2)將各省進(jìn)行編號(hào),然后利用無(wú)向圖個(gè)頂點(diǎn)之間的邊來(lái)表示各省的相鄰關(guān)系;3)演示程序以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行;4)最后對(duì)結(jié)果做出簡(jiǎn)單分析。二:概要設(shè)計(jì)一:設(shè)計(jì)思路把34個(gè)省看成34個(gè)頂點(diǎn),從選定的第一個(gè)頂點(diǎn)開(kāi)始著色,先試第一種顏色,如果這個(gè)顏色與這個(gè)頂點(diǎn)的其他鄰接頂點(diǎn)的顏色不重復(fù),則這個(gè)頂點(diǎn)就是用這種顏色,程序開(kāi)始對(duì)下一個(gè)頂點(diǎn)著色;如果著色重復(fù),則使用下一種顏
2、色重復(fù)上面的操作。著色過(guò)程就是一個(gè)遞歸的過(guò)程,直到所有的頂點(diǎn)都處理完后結(jié)束著色。二:數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)因?yàn)檫@個(gè)程序是對(duì)圖的操作,所以程序采用的邏輯結(jié)構(gòu)是圖狀,存儲(chǔ)結(jié)構(gòu)選用鄰接表,考慮用鄰接表是因?yàn)橐话愕牡貓D的某一個(gè)頂點(diǎn)并不會(huì)與很多的頂點(diǎn)相鄰接,如果用鄰接矩陣會(huì)浪費(fèi)很多的存儲(chǔ)空間,所以我選擇的鄰接表來(lái)存儲(chǔ)。其中:typedefstructArcNode{intx;(表示與當(dāng)前頂點(diǎn)所表示省份相鄰的省份的位置信息)structArcNode*next;(指向下一個(gè)弧結(jié)點(diǎn))}ArcNode;(表示省份之間相鄰關(guān)系的弧結(jié)點(diǎn))typedefstruct{char*name;(頂點(diǎn)所表示的省份的名稱)intcol
3、or;(省份的顏色,用數(shù)字表示不同的顏色)ArcNode*firstnext;(指向第一個(gè)?。﹠shengfen[35];文案大全實(shí)用文檔三:詳細(xì)設(shè)計(jì)該程序一共包含三個(gè)模版:分別為初始化模版、著色模版和輸出模版。1.初始化模塊聲明表示省份的頂點(diǎn)信息、省份之間相鄰關(guān)系的弧的信息,并為其賦值。2.著色模塊為各個(gè)省份著色。for(i=1;i<=34;i++){sheng[i].color=0;}for(i=1;i<=34;i++){j=1;p=sheng[i].firstnext;while(p!=NULL){while(p!=NULL&&j!=sheng[p->x].color){p=p->nex
4、t;}if(p!=NULL)j++;}sheng[i].color=j;}3.輸出模塊輸出各個(gè)省份的顏色信息。for(i=1;i<=34;i++){printf("%s:",sheng[i].name);printf("%d",sheng[i].color);}printf("/n0表示白色,1表示藍(lán)色,2表示紅色,3表示綠色,4表示黃色");return0;文案大全實(shí)用文檔四:調(diào)試分析因?yàn)槲覀兊某绦蛞阎侵袊?guó)地圖,為中國(guó)地圖染色,所以程序沒(méi)有輸入,只有輸出信息。從輸出的信息來(lái)看,我們最多使用了4種顏色。關(guān)于程序測(cè)試時(shí)存在的問(wèn)題,我們程序在寫(xiě)完之后,出現(xiàn)了沒(méi)有錯(cuò)誤但是無(wú)法輸出信息的問(wèn)題,從
5、網(wǎng)上查找發(fā)現(xiàn)是對(duì)警告沒(méi)處理好的原因,隨后我們參考了網(wǎng)上的解決方案把問(wèn)題解決了。關(guān)于程序的改進(jìn),我們的程序使用的是有向圖,但省份之間的相鄰關(guān)系用無(wú)向圖就可以表示,這是程序可以改進(jìn)的地方。其次,我們的程序輸出結(jié)果描述省份顏色的是數(shù)字,也可以改進(jìn)后使之輸出具體的顏色。文案大全實(shí)用文檔五:源程序清單#include#includetypedefstructArcNode{intx;structArcNode*next;}ArcNode;typedefstruct{char*name;intcolor;ArcNode*firstnext;}shengfen[35];
6、intmain(){shengfensheng;inti,j;ArcNode*p,*hu1,*hu2,*hu3,*hu4,*hu5,*hu6,*hu7,*hu8,*hu9,*hu10,*hu11,*hu12,*hu13,*hu14,*hu15,*hu16,*hu17,*hu18;ArcNode*hu19,*hu20,*hu21,*hu22,*hu23,*hu24,*hu25,*hu26,*hu27,*hu28,*hu29,*hu30,*hu31,*hu32,*hu33,*hu34,*hu35;ArcNode*hu36,*hu37,*hu38,*hu39,*hu40,*hu41,*hu42,*h
7、u43,*hu44,*hu45,*hu46,*hu47,*hu48,*hu49,*hu50,*hu51,*hu52;ArcNode*hu53,*hu54,*hu55,*hu56,*hu57,*hu58,*hu59,*hu60,*hu61,*hu62,*hu63,*hu64,*hu65,*hu66;ArcNode*hu67,*hu68,*hu69,*hu70,*hu71,*hu72,*hu73,*h