实验报告_-地图着色.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计 地图的四色问题 班 级: 07计单 组 长: 陈轶群 组 员: 吕 龙 任课教师: 鞠训光 一 、需求分析 1.以二维数组list[N+1][N+1]表示地图,N表示区域数目,数组中以元素值为0表示不邻接,1表示邻接,限定区域数目N=50. 2.用户先输入区域数目N,再输入邻接区域的代码,邻接可只写一次,区域的代码为0~N,N个为区域,一个为外部区域,或输入N-1,则可不包括外部区域,N个区域由用户定义 3.输出时,采用一一对应的方法,一个区域对应一种颜色 形式:区域代码==》颜色代码(1~4)=》颜色 4.本程序可为任意一张的地图染色,并且至多只染四种颜色 5.测试数据:当区域数目N=8,地图如下: 输出为 0=1=red 1=2=green 2=3=blue 3=4=yellow 4=1=red 5=2=green 6=2=green 7=4=yellow 8=3=blue 6.程序执行的命令为:1)创建地图 2)存储地图 3)获取地图 4)地图着色 5)退出 二、概要设计 1.ε{’0’、‘1’},0 =i=N,0=j=N 数据关系:R={ROW,COL} ROW={ai-1,j,ai,j|ai-1,j,ai,jε D,i=1,…N,j=0,…,N} COL={ai,j-1,ai,j|ai,j-1,ai,jε D,i=0,…N,j=1,…,N} } 2.本程序包括两个模块 1)主程序模块: void main() { 初始化; while { 接受命令; 处理命令; } } 2)地图模块――实现地图抽象数据类型 各模块之间的调用关系如下: 主程序模块 地图模块 三、详细设计 1.地图数据类型的操作设置如下: int creat(int N,int list[][MAX+1]) //初始化并创建地图的邻接矩阵 2.两点是否邻接的伪码算法: int link(int x,int *dc,int n,int list[][MAX+1]) { //从1到n看是否与x相邻,是返回‘1’ // 否则,返回‘0’ for(i=0;in;i++) if(list[dc[i]][x])return(1); return(0); } 3.着色伪码算法 int *fco(int *color,int N,int list[][MAX+1]) { //遇到一个区域,给它最小的颜色,看他是否与该种颜色的区域邻接,是则另赋 //颜色,否则找下个区域,如果还不能着色,则前面区域另设颜色,直到成功 初始化颜色 for(i=0;iN+1;i++) { 为第一个区域着色; for(k=0;k4;k++) { 如果第k种颜色还未有地区,则将其赋予第i个区域; 否则,看他是否与第k种颜色的地区相邻 if(!link(i,dc[k],mcd[k],list)) { dc[k][mcd[k]]=i; color[i]=k+1; mcd[k]=mcd[k]+1; break; } } if(color[i]==0)i=reset(i,color,mcd,dc,list); } } } 4.将邻接矩阵存储伪码算法 int save(int N,int list[][MAX+1]) { //将邻接矩阵存成文件 } 5.主程序和其他函数的伪码算法 void main { //主程序 while(1) { //系统初始化,主界面 clrscr();//清屏 显示清单 ReadCommand(cmd); //读入一个操作命令符 Interpret(cmd) ; //执行操作 } } 6.函数调用关系图反映了演示程序的层次结构 1.Creat 2.sa

文档评论(0)

bhl0572 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档