ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:118.82KB ,
资源ID:20322827      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20322827.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构地图填色问题Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构地图填色问题Word下载.docx

1、 / 地图行政区域填充的颜色存储数组long int Count=0; / 统计总共的填色方案个数2) 本程序主要包含 6 个函数 :主函数 main()显示行政区域的邻接矩阵关系 对地图行政区域进行第一次着色 对地图行政区域进行各种方案着色的显判断这个颜色对第 n 行政区域能不能满足要求 各函数间调用关系如下:Same_ColorMain( 3) 主函数的伪码main() 定义一个邻接矩阵 G; 创建地图及行政区域的邻接矩阵; 显示行政区域的邻接矩阵关系; 对地图进行填充颜色; 改变颜色,显示多种方案;五、 详细设计#define MAX_VERTEX_NUM 26 / 最大行政区域个数 t

2、ypedef struct / 邻接矩阵/* 函数: Create_Graph *功能:建立地图的邻接矩阵* 说明:输入参数 Graph *G 本函数很好的完成了地图的创建以及行政区域之间的存储。 在输入错误的时候,会有相应的指示,使得程序更加健壮。*/void Create_Graph( Graph *G ) / 建立地图行政区域的邻接矩阵 输入地图的行政区域的个数 G-vexnum ; 输入行政区域,构造行政区域 -顶点向量 ; 初始化邻接矩阵都为 0;构造行政区域邻接矩阵; 输入与 V1 相邻的行政区域,存放于 S 数组中; 相邻的行政区域 G-acrsij=1 ; /* * 函数: P

3、rintf_Graph *功能:显示地图行政区域的邻接矩阵 * 说明:输入参数 Graph G 。本函数很好的完成了地图行政区域的邻接矩阵的显示 */ void Printf_Graph( Graph G )构造图形; 横向显示 行政区域; 纵向显示 行政区域; 显示邻接矩阵;/* * 函数: Same_Color*功能:判断这个颜色对第 n 行政区域能不能满足要求 *说明:输入参数 Graph G,int n ,输出 0 则表示满足,输出 1 则表示不满足int Same_Color(Graph G,int n)Colorn 分别与前面已经着色的几块比较; 相邻并且颜色一样,则不满足; 颜色

4、满足 返回 0 颜色不满足 返回 1 Load_Color* 功能:对地图行政区域进行第一次着色 ,始之满足要求*说明:输入参数 Graph G ,int n void Load_Color( Graph G , int n )取一种颜色If( 颜色满足,没有与前面冲突 ) 下一块行政区域着色 Load_Color(G ,n+1);Else 尝试另一种颜色 Print_Color对地图行政区域进行各种方案的显示。 *说明:输入参数 Graph G ,int m 注意:调用本函数的前提是 Color 数组中有一个正确的填充颜色的方案。void Print_Color( Graph G , int

5、 m)for(i=1;i=4;i+) 更换颜色,新的颜色不与前面冲突,颜色满足 下一个行政区域 Print_Color( G , m+1 ) ; 直到(到最后一个行政区域 ,递归出口) 遍历数组 Color ,显示所有行政区域颜色,新的方案;主函数Void main()定义一个邻接矩阵 G;六、 测试结果七、 参考文献数据结构八、 附录#include math.hstdlib.hstring.h/* 数据结构期末综合实验 */题目:地图填色问题 #define MAX_VERTEX_NUM 26 / 最大行政区域个数 / 邻接矩阵数据类型的定义 / 行政区域 -顶点向量 int acrsMA

6、X_VERTEX_NUMMAX_VERTEX_NUM; / 邻接矩阵 int vexnum; / 地图当前行政区域个数 Graph ; Create_Graphvoid Create_Graph( Graph *G )int i , j , k , t ;char sMAX_VERTEX_NUM;char tempMAX_VERTEX_NUM;char V1 , V2 ;/ 建立地图行政区域的邻接矩阵/ 变量的定义/ 暂时存放与某一行政区域相邻的行政区域/ 临时数组/ 相邻的两个行政区域的顶点向量Start:G-vexnum =0;printf( 输入地图的行政区域的个数/ 初始化,总的行政区

7、域个数为(不超过 26 个 ):t);scanf(%d,&vexnum);gets(temp);if( G-vexnum vexnum 27) goto Start;/ 输入的数值不在 026 之间重新开始for(i=0;vexnum;i+)New_Input:for(t=0;tvexs iz|G-vexs i0) / 输入的不为单字符,重新输入 输入的不为单字符,重新输入 ni;t+) / 检测当前输入的行政区域与之前有没有冲突, 有冲突, 重新输 入vexs i=G-vexs t) 输入的行政区域之前已经输入过,重新输入 n/初始化邻接矩阵for(j=0;jj+)acrsij=0 ;都为

8、0for(k=0;kvexsk); for(t=0;vexnum ;t+) / 显示与 Mg-vexsk 已经相邻的行政区域 acrskt=1) printf(%c ,G-vexst);printf(nV1=G-vexsk; / V1 行政区域i=k; / 确定 v1 在 G-vexs 中的位置 为 i/ 清空 S 数组/ 输入与 V1 相邻的行政区域,存放于 S 数组中t+) st=NULL;t=0;while(tacrsji=1;void Printf_Graph( Graph G )int i , j ; 地图的邻接矩阵表示,相邻的用 1表示 n ); G .vexnum ;i+) pr

9、intf( ,G.vexs i);G .vexnum*4+3 ;-/ 构造图形/ 横向显示 行政区域/ 显示相应长度的 -%c / 纵向显示 行政区域G.vexnum ;%d ,G.acrsij); / 显示邻接矩阵/ / int ColorMAX_VERTEX_NUM+1; / 地图行政区域填充的颜色存储数组 long int Count=0; / 统计总共的填色方案个数 /*判断这个颜色对第 n 行政区域能不能满足要求int i ;n;i+) / 分别与前面已经着色的几块比较if(G.acrs ni=1&Colori=Colorn)/ 相邻并且颜色一样,则不满足return 1; / 与前

10、面颜色有冲突,返回 1,表示该颜色不满足 return 0; / 没有冲突,该颜色满足,返回 0*函数:Load_Color对地图行政区域进行第一次着色,始之满足要求输入参数 Graph G ,int nvoid Load_Color( Graph G , int n ) / 递归出口if(n=G.vexnum )elseColorn=i;if(Same_Color(G ,n)=0)Load_Color(G ,n+1); break;/ 存储颜色/ 颜色满足,没有与前面冲突/ 下一块行政区域 Print_Color *功能:void Print_Color( Graph G , int m)

11、int i=0, j=0;i+) Colorm=i;if(Same_Color(G,m)=0)if(m=G.vexnum -1)j+) switch(Colorj)/ 尝试更换颜色/ 新的颜色不与前面冲突,颜色满足/ 到最后一个行政区域 ,递归出口/ 遍历数组 Color ,显示所有行政区域颜色,新的方案!case 1:%c 区域填红色 , ,G.vexs j);break;case 2:%c 区域填黄色 , case 3:%c 区域填蓝色 , case 4:%c 区域填绿色 , Count+;/ 方案加 1Print_Color( G , m+1 ) ; / 下一个行政区域void main()Graph G;Create_Graph( &G);Printf_Graph( G ); 着色方案: nLoad_Color( G , 0 );Print_Color( G , 0 );n 总填充方案 %d 个 n,Count);/ 定义一个邻接矩阵 G/ 创建地图及行政区域的邻接矩阵/ 显示行政区域的邻接矩阵关系/ 着色方案/ 对地图进行填充颜色/ 改变颜色,显示多种方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1