网站大量收购闲置独家精品文档,联系QQ:2885784924

5深度优先算法.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5深度优先算法

计算机算法的设计与分析实验报告 ——深度优先遍历 算法 基本思路 ?1、在每个阶段的决策时,采取能深则深的原则试探所有可行的方案,一旦深入一层则保存当前操作引起的状态。 ?2、一旦试探失败,为了摆脱当前失败状态,采取回到上一阶段尝试下一方案的策略(回溯策略);或者在求解所有解时,求得一个解后,回溯到上一阶段尝试下一方案,以求解下一个解。 ?3、在各个阶段尝试方案时,采取的是穷举的思想。 代码 #include stdafx.h #includeiostream.h//构造有向图p162 #includestring.h #includeiomanip.h #define INFINITY 10000//最大值,无穷 #define MAX_VERTEX_NUM 20//最大顶点个数,即可以计算的最大规模 typedef struct ArcCell { float adj;//无权图为1或0,有权图为权重 char info[30];//该弧相关信息 }ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { char vexs[MAX_VERTEX_NUM][20];//顶点向量,如v1,v2,...等 AdjMatrix arcs; int vexnum,arcnum; }MGraph; //char temp[100][20];//作成全局变量 int LocateVex(MGraph G,char *v) { int i,num=-1; for(i=0;iG.vexnum;i++) { if(strcmp(v,G.vexs[i])==0)//相等时为0,大于为正,小于为负 { num=i; break; } } if(num0) { cout没有匹配的顶点,输入错误!endl; return -1; } else return num; } void CreateNet(MGraph G) { int i,j,k,s=0; int IncInfo=-1;//IncInfo为0则各弧不含其它信息,有信息则为其他数字 char v[2][20];//存放一条边的两个顶点 char *p; float w;//输入的权重 int direct=-1;//有向图为1,无向图为其他数字 //char temp[100][20];//这个temp不能放到本函数内,or,G.vexs[i]引用他时,赋了值,跳出这个函数就没有值.这样不好 //scanf(G.vexnum,G.arcnum,IncInfo); cout构建有向图请输入数字1,构建无向图请输入其他数字(无向图请输入上三角的边).endl; cindirect; cout各顶点无信息则输入数字0,有信息输入其他数字.endl; cinIncInfo; cout请输入顶点和弧数目:endl; cinG.vexnumG.arcnum; cout请输入G.vexnum个顶点的符号,如v1,v2...endl; for(i=0;iG.vexnum;++i) { p=G.vexs[i]; cinp;//注意vexs[MAX_VERTEX_NUM]中的MAX_VERTEX_NUM大于G.vexnum } for(i=0;iG.vexnum;i++) { coutG.vexs[i] ; } for(i=0;iG.vexnum;++i) { for(j=0;jG.vexnum;++j) { G.arcs[i][j].adj=INFINITY; p=G.arcs[i][j].info; p=\0;///////////////////////////////问题 } } for(k=0;kG.arcnum;++k)//循环弧的次数 { cout第k+1次输入:endl; cout出发点:; p=v[0]; cinp; i=LocateVex(G,p); cout接受点:; p=v[1]; cinp; j=LocateVex(G,p); cout权重:; cinw;//输入格式: v1 v2 18 couti=i j=jendl; G.arcs[i][j].adj=w; if(IncInfo) { cout输入信息:; p=G.arcs[i][j].info; cinp; } if(direct!=1) G.arcs[j][i]=G.arcs[i][j]; }

文档评论(0)

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

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

1亿VIP精品文档

相关文档