北交真题算法答案.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  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文档。上传文档
查看更多

#include

#include

#include

#includeSeqStack.h

typedefcharVertexType[4];

typedefcharInfoPtr;

typedefintVRType;

#defineMaxSize50//最大顶点个数

typedefenum{DG,DN,UG,UN}GraphKind;//图的类型:有向图、有向网、无向图和无向网

//边结点的类型定义

typedefstructArcNode{

intadjvex;//弧指向的顶点的位置

InfoPtr*info;//弧的权值

structArcNode*nextarc;//指示下一个与该顶点相邻接的顶点

}ArcNode;

//头结点的类型定义

typedefstructVNode{

VertexTypedata;//用于顶点

ArcNode*firstarc;//指示第一个与该顶点邻接的顶点

}VNode,AdjList[MaxSize];

//图的类型定义

typedefstruct{

AdjListvertex;//头结点

intvexnum,arcnum;//图的顶点数目与弧的数目

GraphKindkind;//图的类型

}AdjGraph;

//求图G中从顶点u到顶点v的一条简单路径

voidBriefPath(AdjGraphG,intu,intv){

intk,i;

SeqStackS;

ArcNode*p;

intvisited[MaxSize];

intparent[MaxSize];//已经顶点的前驱顶点

InitStack(S);

for(k=0;kadjvex==v){//如果找到顶点v

parent[p-adjvex]=k;//顶点v的前驱顶点序号是k

printf(顶点%s到顶点%s的路径是:,G.vertex[u].data,G.vertex[v].data);

i=v;

do{//从顶点v开始将路径中的顶点依次入栈

PushStack(S,i);

i=parent[i];

}while(i!=u);

PushStack(S,u);

while(!StackEmpty(S)){//从顶点u开始输出u到v中路径的顶点

PopStack(S,i);

printf(%s,G.vertex[i].data);

}

printf(

);

}elseif(visited[p-adjvex]==0){//如果未找到顶点v且邻接点未过,则继

续寻找

visited[p-adjvex]=1;

parent[p-adjvex]=k;

PushStack(S,p-adjvex);

}

p=p-nextarc;

文档评论(0)

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

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

1亿VIP精品文档

相关文档