欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    离散实验报告.doc

    • 资源ID:51842727       资源大小:168.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    离散实验报告.doc

    实 验 报 告(2014 / 2015 学年 第 一 学期)课程名称离散数学实验名称图的随机生成及欧拉(回)路的确定实验时间2015年12月30日指导单位计算机科学与技术系指导教师张琳学生姓名崔新班级学号B学院(系)计软院专 业软嵌NIIT一、实验内容和要求对给定n个结点,随机生成邻接矩阵以确定某无向简单图并进行欧拉图和半欧拉图的判定,若符合则给出至少一条欧拉回路或欧拉路。三、程序源代码#include <iostream>#include <ctime>#include <cstdlib>using namespace std;int map5555, n, m = 0; /图,节点数,边数,int ans50, cnt = 0; /记录欧拉路的路径,路径数bool vis50; /标记点是否被访问int st; /判是否为连通图,搜索的起点struct stackint top, node100;s; /定点的栈结构void show() /输出随机生成的无向图关系矩阵for (int i = 0; i < n; i+)for (int j = 0; j < n; j+)cout << mapij << " "cout << endl;void init() /初始化函数bool flag = false; /标记是否生成图memset(map, 0, sizeof(map);memset(vis, false, sizeof(vis);memset(ans, 0, sizeof(ans);srand(unsigned)time(NULL);for (int i = 0; i < n; i+)for (int j = i + 1; j < n; j+)mapij = 0 + rand() % 2; /随机生成无向图for (int i = 0; i < n; i+)for (int j = 0; j < n; j+)if (mapij)flag = true; /最少有一条边m+; /记录边的条数mapji = 1; /无向图的定义st = i; /有一条边则其任意一个端点设为起点while (!flag)init();void DFS2(int x) /深度优先搜索visx = true;for (int i = 0; i < n; i+)if (!visi && mapxi)DFS2(i);/从所设定的起点深度优先遍历图,若有一个点没被访问,则为非连通图bool judge()DFS2(st);for (int i = 0; i < n; i+)if (!visi)return false;return true;void DFS(int x) /深度优先搜索s.top+;s.nodes.top = x;for (int i = 0; i < n; i+)if (mapix > 0)mapix = 0; /删边操作mapxi = 0;DFS(i);break;void Fleury(int x) /Fleury算法int b;s.top = 0;s.nodes.top = x; /起点入栈while (s.top >= 0)b = 0;for (int i = 0; i < n; i+)if (maps.nodes.topi > 0)b = 1;break;if (b = 0) /如果没有可扩展的点,则记录下该点并将其出栈anscnt+ = s.nodes.top + 1;s.top-;else /如果有,则将其出栈并继续搜索s.top-;DFS(s.nodes.top + 1);cout << endl;void answer() /输出答案for (int i = 0; i < cnt; i+)cout << ansi << " "cout << endl;int main()int num = 0, start = 0, degree; / 奇度顶点个数, 欧拉路的起点, 每个顶点的度cout << "请输入n (1 20):"cin >> n;init();cout << "生成的无向图为: " << endl;show();if (!judge()cout << "非连通图" << endl;return 0;/如果存在奇度顶点,则从奇度顶点出发,否则从0出发for (int i = 0; i < n; i+)degree = 0;for (int j = 0; j < n; j+)degree += mapij;if (degree % 2)start = i;num+;/无向图具有一条欧拉路,当且仅当G是连通的,且有0个或2个奇数度结点if (num = 0 | num = 2)Fleury(start);/欧拉路径的头和尾相等,则说明欧拉路是回路if (ans0 = anscnt - 1)cout << "该图为欧拉图,欧拉回路为: "elsecout << "该图为半欧拉图,欧拉路为: "answer();elsecout << "非欧拉图或半欧拉图" << endl;cin >> num;return 0;四、测试界面和用例五、实验中遇到的问题和解决方案六、实验体会

    注意事项

    本文(离散实验报告.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开