数据结构课程设计报告地图着色问题_第1页
数据结构课程设计报告地图着色问题_第2页
数据结构课程设计报告地图着色问题_第3页
数据结构课程设计报告地图着色问题_第4页
数据结构课程设计报告地图着色问题_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业课程设计报告课程设计题目:地图着色问题专业:xxxxxxxxx班级:xxxxxxxxx姓名:xxxxxxxxx一:需求分析:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少;将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系;演示程序以用户和计算机的对话方式进行;最后对结果做出简单分析。二:概要设计一:设计思路把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不

2、重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。二:数据结构设计因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。其中:typedef struct ArcNodeint x; (表示与当前顶点所表示省份相邻的省份的位置信息)struct ArcNode *next; (指向下一个弧结点)ArcNode; (表示省份之间相邻关

3、系的弧结点)typedef structchar *name; (顶点所表示的省份的名称)int color; (省份的颜色,用数字表示不同的颜色)ArcNode *firstnext; (指向第一个弧)shengfen35;三:详细设计该程序一共包含三个模版:分别为初始化模版、着色模版和输出模版。1.初始化模块声明表示省份的顶点信息、省份之间相邻关系的弧的信息,并为其赋值。2.着色模块为各个省份着色。for(i=1;i=34;i+)shengi.color=0;for(i=1;ix.color)p=p-next;if(p!=NULL)j+;shengi.color=j;3.输出模块输出各个省

4、份的颜色信息。for(i=1;i=34;i+)printf(%s:,);printf(%dn,shengi.color); printf(/n0表示白色,1表示蓝色,2表示红色,3表示绿色,4表示黄色);return 0;四:调试分析因为我们的程序已知是中国地图,为中国地图染色,所以程序没有输入,只有输出信息。从输出的信息来看,我们最多使用了4种颜色。关于程序测试时存在的问题,我们程序在写完之后,出现了没有错误但是无法输出信息的问题,从网上查找发现是对警告没处理好的原因,随后我们参考了网上的解决方案把问题解决了。关于程序的改进,我们的程序使用的是有向图,但省份之间的相邻关

5、系用无向图就可以表示,这是程序可以改进的地方。其次,我们的程序输出结果描述省份颜色的是数字,也可以改进后使之输出具体的颜色。五:源程序清单#include #include typedef struct ArcNodeint x;struct ArcNode *next;ArcNode;typedef structchar *name;int color;ArcNode *firstnext;shengfen35;int main()shengfen sheng;int i,j;ArcNode *p,*hu1,*hu2,*hu3,*hu4,*hu5,*hu6,*hu7,*hu8,*hu9,*h

6、u10,*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,*hu43,*hu44,*hu45,*hu46,*hu47,*hu48,*hu49,*hu50,*hu51,*hu52;ArcNode *hu53,*hu54,*hu55,*h

7、u56,*hu57,*hu58,*hu59,*hu60,*hu61,*hu62,*hu63,*hu64,*hu65,*hu66;ArcNode *hu67,*hu68,*hu69,*hu70,*hu71,*hu72,*hu73,*hu74,*hu75,*hu76,*hu77,*hu78,*hu79,*hu80,*hu81,*hu82,*hu83,*hu84;ArcNode *hu85,*hu86,*hu87,*hu88,*hu89,*hu90,*hu91,*hu92,*hu93,*hu94,*hu95,*hu96,*hu97,*hu98,*hu99,*hu100;ArcNode *hu101,

8、*hu102,*hu103,*hu104,*hu105,*hu106,*hu107,*hu108,*hu109,*hu110,*hu111,*hu112,*hu113,*hu114,*hu115,*hu116,*hu117;ArcNode *hu118,*hu119,*hu120,*hu121,*hu122,*hu123,*hu124,*hu125,*hu126,*hu127,*hu128,*hu129;ArcNode *hu130,*hu131,*hu132,*hu133,*hu134,*hu135,*hu136,*hu137,*hu138,*hu139,*hu140,*hu141,*hu1

9、42;hu1=(ArcNode *)malloc(sizeof(ArcNode);hu2=(ArcNode *)malloc(sizeof(ArcNode);hu3=(ArcNode *)malloc(sizeof(ArcNode);hu4=(ArcNode *)malloc(sizeof(ArcNode);hu5=(ArcNode *)malloc(sizeof(ArcNode);hu6=(ArcNode *)malloc(sizeof(ArcNode);hu7=(ArcNode *)malloc(sizeof(ArcNode);hu8=(ArcNode *)malloc(sizeof(Ar

10、cNode);hu9=(ArcNode *)malloc(sizeof(ArcNode);hu10=(ArcNode *)malloc(sizeof(ArcNode);hu11=(ArcNode *)malloc(sizeof(ArcNode);hu12=(ArcNode *)malloc(sizeof(ArcNode);hu13=(ArcNode *)malloc(sizeof(ArcNode);hu14=(ArcNode *)malloc(sizeof(ArcNode);hu15=(ArcNode *)malloc(sizeof(ArcNode);hu16=(ArcNode *)mallo

11、c(sizeof(ArcNode);hu17=(ArcNode *)malloc(sizeof(ArcNode);hu18=(ArcNode *)malloc(sizeof(ArcNode);hu19=(ArcNode *)malloc(sizeof(ArcNode);hu20=(ArcNode *)malloc(sizeof(ArcNode);hu21=(ArcNode *)malloc(sizeof(ArcNode);hu22=(ArcNode *)malloc(sizeof(ArcNode);hu23=(ArcNode *)malloc(sizeof(ArcNode);hu24=(Arc

12、Node *)malloc(sizeof(ArcNode);hu25=(ArcNode *)malloc(sizeof(ArcNode);hu26=(ArcNode *)malloc(sizeof(ArcNode);hu27=(ArcNode *)malloc(sizeof(ArcNode);hu28=(ArcNode *)malloc(sizeof(ArcNode);hu29=(ArcNode *)malloc(sizeof(ArcNode);hu30=(ArcNode *)malloc(sizeof(ArcNode);hu31=(ArcNode *)malloc(sizeof(ArcNod

13、e);hu32=(ArcNode *)malloc(sizeof(ArcNode);hu33=(ArcNode *)malloc(sizeof(ArcNode);hu34=(ArcNode *)malloc(sizeof(ArcNode);hu35=(ArcNode *)malloc(sizeof(ArcNode);hu36=(ArcNode *)malloc(sizeof(ArcNode);hu37=(ArcNode *)malloc(sizeof(ArcNode);hu38=(ArcNode *)malloc(sizeof(ArcNode);hu39=(ArcNode *)malloc(s

14、izeof(ArcNode);hu40=(ArcNode *)malloc(sizeof(ArcNode);hu41=(ArcNode *)malloc(sizeof(ArcNode);hu42=(ArcNode *)malloc(sizeof(ArcNode);hu43=(ArcNode *)malloc(sizeof(ArcNode);hu44=(ArcNode *)malloc(sizeof(ArcNode);hu45=(ArcNode *)malloc(sizeof(ArcNode);hu46=(ArcNode *)malloc(sizeof(ArcNode);hu47=(ArcNod

15、e *)malloc(sizeof(ArcNode);hu48=(ArcNode *)malloc(sizeof(ArcNode);hu49=(ArcNode *)malloc(sizeof(ArcNode);hu50=(ArcNode *)malloc(sizeof(ArcNode);hu51=(ArcNode *)malloc(sizeof(ArcNode);hu52=(ArcNode *)malloc(sizeof(ArcNode);hu53=(ArcNode *)malloc(sizeof(ArcNode);hu54=(ArcNode *)malloc(sizeof(ArcNode);

16、hu55=(ArcNode *)malloc(sizeof(ArcNode);hu56=(ArcNode *)malloc(sizeof(ArcNode);hu57=(ArcNode *)malloc(sizeof(ArcNode);hu58=(ArcNode *)malloc(sizeof(ArcNode);hu59=(ArcNode *)malloc(sizeof(ArcNode);hu60=(ArcNode *)malloc(sizeof(ArcNode);hu61=(ArcNode *)malloc(sizeof(ArcNode);hu62=(ArcNode *)malloc(size

17、of(ArcNode);hu63=(ArcNode *)malloc(sizeof(ArcNode);hu64=(ArcNode *)malloc(sizeof(ArcNode);hu65=(ArcNode *)malloc(sizeof(ArcNode);hu66=(ArcNode *)malloc(sizeof(ArcNode);hu67=(ArcNode *)malloc(sizeof(ArcNode);hu68=(ArcNode *)malloc(sizeof(ArcNode);hu69=(ArcNode *)malloc(sizeof(ArcNode);hu70=(ArcNode *

18、)malloc(sizeof(ArcNode);hu71=(ArcNode *)malloc(sizeof(ArcNode);hu72=(ArcNode *)malloc(sizeof(ArcNode);hu73=(ArcNode *)malloc(sizeof(ArcNode);hu74=(ArcNode *)malloc(sizeof(ArcNode);hu75=(ArcNode *)malloc(sizeof(ArcNode);hu76=(ArcNode *)malloc(sizeof(ArcNode);hu77=(ArcNode *)malloc(sizeof(ArcNode);hu7

19、8=(ArcNode *)malloc(sizeof(ArcNode);hu79=(ArcNode *)malloc(sizeof(ArcNode);hu80=(ArcNode *)malloc(sizeof(ArcNode);hu81=(ArcNode *)malloc(sizeof(ArcNode);hu82=(ArcNode *)malloc(sizeof(ArcNode);hu83=(ArcNode *)malloc(sizeof(ArcNode);hu84=(ArcNode *)malloc(sizeof(ArcNode);hu85=(ArcNode *)malloc(sizeof(

20、ArcNode);hu86=(ArcNode *)malloc(sizeof(ArcNode);hu87=(ArcNode *)malloc(sizeof(ArcNode);hu88=(ArcNode *)malloc(sizeof(ArcNode);hu89=(ArcNode *)malloc(sizeof(ArcNode);hu90=(ArcNode *)malloc(sizeof(ArcNode);hu91=(ArcNode *)malloc(sizeof(ArcNode);hu92=(ArcNode *)malloc(sizeof(ArcNode);hu93=(ArcNode *)ma

21、lloc(sizeof(ArcNode);hu94=(ArcNode *)malloc(sizeof(ArcNode);hu95=(ArcNode *)malloc(sizeof(ArcNode);hu96=(ArcNode *)malloc(sizeof(ArcNode);hu97=(ArcNode *)malloc(sizeof(ArcNode);hu98=(ArcNode *)malloc(sizeof(ArcNode);hu99=(ArcNode *)malloc(sizeof(ArcNode);hu100=(ArcNode *)malloc(sizeof(ArcNode);hu101

22、=(ArcNode *)malloc(sizeof(ArcNode);hu102=(ArcNode *)malloc(sizeof(ArcNode);hu103=(ArcNode *)malloc(sizeof(ArcNode);hu104=(ArcNode *)malloc(sizeof(ArcNode);hu105=(ArcNode *)malloc(sizeof(ArcNode);hu106=(ArcNode *)malloc(sizeof(ArcNode);hu107=(ArcNode *)malloc(sizeof(ArcNode);hu108=(ArcNode *)malloc(s

23、izeof(ArcNode);hu109=(ArcNode *)malloc(sizeof(ArcNode);hu110=(ArcNode *)malloc(sizeof(ArcNode);hu111=(ArcNode *)malloc(sizeof(ArcNode);hu112=(ArcNode *)malloc(sizeof(ArcNode);hu113=(ArcNode *)malloc(sizeof(ArcNode);hu114=(ArcNode *)malloc(sizeof(ArcNode);hu115=(ArcNode *)malloc(sizeof(ArcNode);hu116

24、=(ArcNode *)malloc(sizeof(ArcNode);hu117=(ArcNode *)malloc(sizeof(ArcNode);hu118=(ArcNode *)malloc(sizeof(ArcNode);hu119=(ArcNode *)malloc(sizeof(ArcNode);hu120=(ArcNode *)malloc(sizeof(ArcNode);hu121=(ArcNode *)malloc(sizeof(ArcNode);hu122=(ArcNode *)malloc(sizeof(ArcNode);hu123=(ArcNode *)malloc(s

25、izeof(ArcNode);hu124=(ArcNode *)malloc(sizeof(ArcNode);hu125=(ArcNode *)malloc(sizeof(ArcNode);hu126=(ArcNode *)malloc(sizeof(ArcNode);hu127=(ArcNode *)malloc(sizeof(ArcNode);hu128=(ArcNode *)malloc(sizeof(ArcNode);hu129=(ArcNode *)malloc(sizeof(ArcNode);hu130=(ArcNode *)malloc(sizeof(ArcNode);hu131

26、=(ArcNode *)malloc(sizeof(ArcNode);hu132=(ArcNode *)malloc(sizeof(ArcNode);hu133=(ArcNode *)malloc(sizeof(ArcNode);hu134=(ArcNode *)malloc(sizeof(ArcNode);hu135=(ArcNode *)malloc(sizeof(ArcNode);hu136=(ArcNode *)malloc(sizeof(ArcNode);hu137=(ArcNode *)malloc(sizeof(ArcNode);hu138=(ArcNode *)malloc(s

27、izeof(ArcNode);hu139=(ArcNode *)malloc(sizeof(ArcNode);hu140=(ArcNode *)malloc(sizeof(ArcNode);hu141=(ArcNode *)malloc(sizeof(ArcNode);hu142=(ArcNode *)malloc(sizeof(ArcNode);=heilongjiang;hu1-x=2;hu2-x=4;sheng1.firstnext=hu1;hu1-next=hu2;hu2-next=NULL;=jilin;hu3-x=4;hu4-x=3;hu

28、141-x=1;sheng2.firstnext=hu3;hu3-next=hu4;hu4-next=hu141;hu141-next=NULL;=liaoning;hu5-x=4;hu6-x=10;hu142-x=2;sheng3.firstnext=hu5;hu5-next=hu6;hu6-next=hu142;hu142-next=NULL;=neimenggu;hu7-x=1;hu8-x=2;hu9-x=3;hu10-x=10;hu11-x=9;hu12-x=8;hu13-x=7;hu14-x=6;hu15-x=5;sheng4.firstn

29、ext=hu7;hu7-next=hu8;hu8-next=hu9;hu9-next=hu10;hu10-next=hu11;hu11-next=hu12;hu12-next=hu13;hu13-next=hu14;hu14-next=hu15;hu15-next=NULL;=xinjiang;hu16-x=6;hu17-x=13;hu18-x=16;sheng5.firstnext=hu16;hu16-next=hu17;hu17-next=hu18;hu18-next=NULL;=gansu;hu19-x=4;hu20-x=7;hu21-x=8;

30、hu22-x=17;hu23-x=13;hu24-x=5;sheng6.firstnext=hu19;hu19-next=hu20;hu20-next=hu21;hu21-next=hu22;hu22-next=hu23;hu23-next=hu24;hu24-next=NULL;=ningxia;hu25-x=4;hu26-x=8;hu27-x=6;sheng7.firstnext=hu25;hu25-next=hu26;hu26-next=hu27;hu27-next=NULL;=shanxi1;hu28-x=4;hu29-x=9;hu30-x=

31、14;hu31-x=19;hu32-x=18;hu33-x=17;hu34-x=6;hu35-x=7;sheng8.firstnext=hu28;hu28-next=hu29;hu29-next=hu30;hu30-next=hu31;hu31-next=hu32;hu32-next=hu33;hu33-next=hu34;hu34-next=hu35;hu35-next=NULL;=shanxi2;hu36-x=4;hu37-x=10;hu38-x=14;hu39-x=8;sheng9.firstnext=hu36;hu36-next=hu37;hu37-next=hu

32、38;hu38-next=hu39;hu39-next=NULL;=hebei;hu40-x=4;hu41-x=3;hu42-x=11;hu43-x=12;hu44-x=15;hu45-x=14;hu46-x=9;sheng10.firstnext=hu40;hu40-next=hu41;hu41-next=hu42;hu42-next=hu43;hu43-next=hu44;hu44-next=hu45;hu45-next=hu46;hu46-next=NULL;=beijing;hu47-x=10;sheng11.firstnext=hu47

33、;hu47-next=NULL;=tianjin;hu48-x=10;sheng12.firstnext=hu48;hu48-next=NULL;=qinghai;hu49-x=5;hu50-x=6;hu51-x=17;hu52-x=16;sheng13.firstnext=hu49;hu49-next=hu50;hu50-next=hu51;hu51-next=hu52;hu52-next=NULL;=henan;hu53-x=9;hu54-x=10;hu55-x=15;hu56-x=21;hu57-x=20;hu58-

34、x=19;hu59-x=8;sheng14.firstnext=hu53;hu53-next=hu54;hu54-next=hu55;hu55-next=hu56;hu56-next=hu57;hu57-next=hu58;hu58-next=hu59;hu59-next=NULL;=shandong;hu60-x=10; hu61-x=14;hu62-x=21;sheng15.firstnext=hu60;hu60-next=hu61;hu61-next=hu62;hu62-next=NULL;=xizang;hu63-x=5;hu64-x=1

35、3;hu65-x=17;hu66-x=23;sheng16.firstnext=hu63;hu63-next=hu64;hu64-next=hu65;hu65-next=hu66;hu66-next=NULL;=sichuan;hu67-x=13;hu68-x=6;hu69-x=8;hu70-x=18;hu71-x=24;hu72-x=23;hu73-x=16;sheng17.firstnext=hu67;hu67-next=hu68;hu68-next=hu69;hu69-next=hu70;hu70-next=hu71;hu71-next=hu72;hu72-nex

36、t=hu73;hu73-next=NULL;=chongqing;hu74-x=17;hu75-x=8;hu76-x=19;hu77-x=25;hu78-x=24;sheng18.firstnext=hu74;hu74-next=hu75;hu75-next=hu76;hu76-next=hu77;hu77-next=hu78;hu78-next=NULL;=hubei;hu79-x=8;hu80-x=14;hu81-x=20;hu82-x=26;hu83-x=25;hu84-x=18;sheng19.firstnext=hu79;hu79-ne

37、xt=hu80;hu80-next=hu81;hu81-next=hu82;hu82-next=hu83;hu83-next=hu84;hu84-next=NULL;=anhui;hu85-x=14;hu86-x=21;hu87-x=27;hu88-x=26;hu89-x=19;sheng20.firstnext=hu85;hu85-next=hu86;hu86-next=hu87;hu87-next=hu88;hu88-next=hu89;hu89-next=NULL;=jiangsu;hu90-x=15;hu91-x=14;hu92-x=20

38、;hu93-x=27;hu94-x=22;sheng21.firstnext=hu90;hu90-next=hu91;hu91-next=hu92;hu92-next=hu93;hu93-next=hu94;hu94-next=NULL;=shanghai;hu95-x=21;hu96-x=27;sheng22.firstnext=hu95;hu95-next=hu96;hu96-next=NULL;=yunnan;hu97-x=16;hu98-x=17;hu99-x=24;hu100-x=29;sheng23.firstnext=hu97;hu

39、97-next=hu98;hu98-next=hu99;hu99-next=hu100;hu100-next=NULL;=guizhou;hu101-x=17;hu102-x=24;hu103-x=29;hu104-x=23;hu105-x=18;sheng24.firstnext=hu101;hu101-next=hu102;hu102-next=hu103;hu103-next=hu104;hu104-next=hu105;hu105-next=NULL;=hunan;hu106-x=18;hu107-x=19;hu108-x=26;hu109-x=30;hu110-x=29;hu111-x=24;sheng25.firstnext=hu106;hu106-next=hu107;hu107-next=hu108;hu108-next=hu109;hu109-next=hu110;hu110-next=hu111;hu111-next=NULL;=jiangxi;hu112-x=25;hu113-x=19;hu114-x=20;hu115-x=27;hu116-x=28;hu117-x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论