- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
连通图着色问题
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:软件综合课程设计
课程设计题目:连通图着色问题
院(系):计算机学院
专 业:计算机科学与技术
班 级:7401104
学 号:200704011110
姓 名:武 林
指导教师:刘香芹
目 录
1 需求分析 2
1.1题目的内容与要求 2
1.11题目的内容 2
1.12题目的要求 2
1.2题目理解与程序解读 2
2 总体设计 4
2.1数据结构设计 4
2.2数据结构类型与函数 4
3 详细设计 6
3.1 子函数流程图 6
3..1.1 memset_子函数 6
3..1.2sort子函数 7
3..1.3 brush_sort子函数 8
3.2 主程序流程图 9
4 调试分析 10
4.1调试时遇到的问题 10
4.2解决方案 10
4.3调试结果及说明 11
参考文献 12
源程序(清单) 13
1 需求分析
1.1题目的内容与要求
1.11题目的内容
输入一个无向图到适当的存储结构中,给图上的每一个结点标记一种颜色,在保证任何相邻结点颜色不同的同时,求解出该图所需要的最少颜色数,并给出每个结点的具体颜色。
1.12题目的要求
1)完成系统需求分析;
2)开发工具可以选择C语言或面向对象的C++等;
3)界面友好,操作方便;
4)按照课程设计规范书写课程设计报告。
1.2题目理解与程序解读
本次课设与离散数学当中图的部分有密切的联系,连通图的着色问题,涉及到图的连通性和图的着色问题。当图的结点之间存在通路,则此图是连通的,在此基础之上对他进行着色。
重要之处在于每个进店标记一种颜色,但要求的是相邻的结点要着上不同的颜色,要求所使用的颜色数最少即是所要求的。
解决此题的算法是韦尔奇.鲍威尔的着色理论,算法如下:
将图的结点按照度数的递减顺序进行排列,(这种排列可能不是唯一的,因为有些点有相同的度数)。
用第一种颜色对第一个结点进行着色,并且按排列次序,对于前面着色点不相邻的每一个结点着上同样的颜色。
用第二种颜色对尚未着色的点重复第二个步骤,用第三种颜色继续这种做法,直到所有的点全部着上色为止。
所以源程序就是对韦尔奇鲍威尔算法演示。首先输入结点个数和边的个数,结点结构体内包含结点编号,度数,结点的颜色和状态。边的结构体当中包含结点结构体变量,用来指示边起始节点和终止结点,同时还包含边的编号。
对输入的图用关联矩阵来表示,对着色的颜色用整型的数字来表示,所以我们规定数字1—5分别表示为红色,黄色,蓝色,绿色和黑色。
初始化颜色为红色,即是为数字1.颜色个数变量初始化为0个。
2 总体设计
2.1数据结构设计
结点和边分别用结构体来存储,结点的结构体为:
typedef struct Node//结点
{
int v;
int deg;
int color;
bool flag;
}Node;
其中v标示结点的编号,deg标示每个结点的度数,color标示对每个结点着上的颜色,flag标示此时结点的状态。这里我们申请最多可以输入50个结点的空间,Node[50]。
边的结构体为:
typedef struct Edge
{
int e0;
Node e1;
Node e2;
}Edge;
这里e0标示边的编号,e1和e2则代表边的起始节点和终止结点。这里我们也申请了最多50条边的空间,Edge[50]。对每个结点的度数进行排序,呈递减顺序,将结点的编号按排好的顺序存放到数组downnote[m]中,这里的m表示输入结点个数的变量。从数组downnote[m]中的第一个元素开始,根据韦尔奇鲍威尔算法对图进行着色,最后确定着色的个数。
2.2数据结构类型与函数
函数名称 函数原型 功能描述 main void main(void); 系统主程序 inite void inite(int m,int n); 初始化无相连通图 memset_ void memset_(int m,int n); 求出关联矩阵以及各点的度数 sort void sort(int m,int n); 对度数进行排序 brush_color void brush_color(int m,int n); 进行着色
表2.1 函数列表
3 详细设计
3.1 子函数流程图
3..1.1 memset_子函数
此部分为求关联矩阵表示,以及求出每个结点相应的度数。
图3.1 memset_函数
3..1.2sort子函数
此部分是将各个结点的度数按递减的顺序进行排列。
图3.2 子函数sort
3..1.3 brush_sort子函数
此部分是本程序中最重要的部分,即为结点进行着色。
图
您可能关注的文档
- 运动损伤康复.ppt
- 运筹学(英)-cha3.ppt
- 运筹学(英)-cha6.ppt
- 运动生理学10-肌肉力量.ppt
- 运筹学本科-整数规划.ppt
- 运城新航标人教版英语必修5练习题及答案解析.doc
- 运营管理 考试题库krajewski_om9_tif_06_SuppC.doc
- 运筹学英文上课录象.ppt
- 迈克尔杰克逊英文演讲.ppt
- 运营管理 考试题库krajewski_om9_tif_SuppI.doc
- 山东德州市城市建设投资发展集团有限公司权属公司招聘笔试题库附答案详解(黄金题型).docx
- 2025重庆机床(集团)有限责任公司招聘46人笔试备考题库及答案详解1套.docx
- 2025年南京紫金投资集团有限责任公司人员招聘笔试备考题库含答案详解(b卷).docx
- 2025内蒙古自治区民航机场集团有限责任公司通辽分公司社会招聘笔试备考题库带答案详解.docx
- 山东济南先行投资有限责任公司招聘笔试题库完整答案详解.docx
- 2024山东济南先行投资集团有限责任公司及权属公司第一批次社会招聘64人笔试备考试题附答案详解(能力.docx
- 司法局工作年终总结.pptx
- 司法局农民工维权总结.pptx
- 司法局工作总结及工作设想.pptx
- 司法工作心得体会.pptx
最近下载
- 北京市海淀区七年级第一学期期末统考地理试卷-初一地理试卷与试题.pdf VIP
- 西南18J312-楼地面-踢脚-变形缝-涂料构造.pdf VIP
- 国际私法【机考真题】-0069.pdf
- 旋塞阀装配图的画图步骤抄画下图所示旋塞阀的装配图课件.pptx VIP
- 优秀传统文化进幼儿园的实践性研究开题、中期、结题报告.pptx VIP
- 2023年烟草公司半结构化面试实例及解析(一).pdf VIP
- 2023年湖南省长沙市(初三学业水平考试)中考物理真题试卷含详解.docx VIP
- 业务连续性管理实施指南.docx VIP
- 《民族大团结》ppt课件.pptx
- 2025至2030年中国粉煤灰综合利用行业发展趋势及投资前景预测报告.docx
文档评论(0)