电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构课程设计地图着色问题VIP专享VIP免费

数据结构课程设计地图着色问题_第1页
数据结构课程设计地图着色问题_第2页
数据结构课程设计地图着色问题_第3页
1 课程设计报告 课程设计题目:地图着色问题 专 业 :x x x x x x x x x 班 级 :x x x x x x x x x 姓 名 :x x x x x x x x x 2 一:需求分析: 1) 已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少; 2) 将各省进行编号,然后利用无向图个顶点之间的边来表示各省的相邻关系; 3) 演示程序以用户和计算机的对话方式进行; 4) 最后对结果做出简单分析。 二:概要设计 一:设计思路 把34个省看成34个顶点,从选定的第一个顶点开始着色,先试第一种颜色,如果这个颜色与这个顶点的其他邻接顶点的颜色不重复,则这个顶点就是用这种颜色,程序开始对下一个顶点着色;如果着色重复,则使用下一种颜色重复上面的操作。着色过程就是一个递归的过程,直到所有的顶点都处理完后结束着色。 二:数据结构设计 因为这个程序是对图的操作,所以程序采用的逻辑结构是图状,存储结构选用邻接表,考虑用邻接表是因为一般的地图的某一个顶点并不会与很多的顶点相邻接,如果用邻接矩阵会浪费很多的存储空间,所以我选择的邻接表来存储。 其中: typedef struct ArcNode { int x; (表示与当前顶点所表示省份相邻的省份的位置信息) struct ArcNode *next; (指向下一个弧结点) }ArcNode; (表示省份之间相邻关系的弧结点) typedef struct { char *name; (顶点所表示的省份的名称) int color; (省份的颜色,用数字表示不同的颜色) ArcNode *firstnext; (指向第一个弧) }shengfen[35]; 3 三:详细设计 该程序一共包含三个模版:分别为初始化模版、着色模版和输出模版。 1 .初始化模块 声明表示省份的顶点信息、省份之间相邻关系的弧的信息,并为其赋值。 2 .着色模块 为各个省份着色。 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->next; } if(p!=NULL) j++; } sheng[i].color=j; } 3 .输出模块 输出各个省份的颜色信息。 for(i=1;i<=34;i++) { printf("%s:",sheng[i].name); printf("%d\n",sheng[i].color); } printf("/n0 表示白色,1 表示蓝色,2 表示红色,3 表示绿色,4 表示黄色"); return 0; 4 四:调试分析 因为我们的程序已知是中国地图,为中国地图染色,所以程序没...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

小辰2+ 关注
实名认证
内容提供者

出售各种资料和文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部