十字链表的遍历.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文档。上传文档
查看更多
十字链表的遍历

#includestdio.h#includestdlib.h#define ERROR 0#define OK 1#define MAX 20typedef char VertexType;typedef struct ArcBox{ int tailvex,headvex; struct ArcBox *hlink; struct ArcBox *tlink;}ArcBox;typedef struct VexNode{ int mark; VertexType data; ArcBox *firstin,*firstout;}VexNode;typedef struct{ VexNode xlist[MAX]; int vexnum,arcnum;}OLGraph;typedef struct{ int *front; int *rear;}Queue;int t=0;void Create(OLGraph G);int LocateVex(OLGraph G,char v);void DFSTraverse(OLGraph G);void DFS(OLGraph G,int v);void BFSTraverse(OLGraph G);void InitQueue(Queue Q);void EnQueue(Queue Q,int v);void DeQueue(Queue Q,int u);int QueueEmpty(Queue Q);int FirstAdjVex(OLGraph G,int v);int NextAdjVex(OLGraph G,int v,int w);void Output(OLGraph G);void main(){ OLGraph G; Create(G); DFSTraverse(G); BFSTraverse(G); Output(G);}void Create(OLGraph G){ int i,j,k; char v1,v2; ArcBox *p; printf(请输入顶点数和弧数:); scanf(%d %d,G.vexnum,G.arcnum); flushall(); printf(\n\n请输入顶点(字符间不要空格):); for(i=0;iG.vexnum;i++) { scanf(%c,G.xlist[i].data); G.xlist[i].mark=false; G.xlist[i].firstin=NULL; G.xlist[i].firstout=NULL; } system(cls); flushall(); for(k=0;kG.arcnum;k++) { printf(请输入弧尾和弧头(字符间不要空格):); scanf(%c%c,v1,v2); i=LocateVex(G,v1); j=LocateVex(G,v2); p=(ArcBox *)malloc(sizeof(ArcBox)); p-tailvex=i;p-headvex =j; p-hlink=G.xlist[j].firstin; p-tlink=G.xlist[i].firstout; G.xlist[j].firstin=G.xlist[i].firstout=p; flushall(); printf(\n\n); }}int LocateVex(OLGraph G,char v){ int i=0; while(G.xlist[i].data!=v) i++; return i;}void DFSTraverse(OLGraph G){ int v; system(cls); printf(十字链表的深度优先搜索结果: ); for(v=0;vG.vexnum;v++) G.xlist[v].mark=false; for(v=0;vG.vexnum;v++) { if(!G.xlist[v].mark) DFS(G,v); } printf(\n\n\n\n\n);}void DFS(OLGraph G,int v){ int w; G.xlist[v].mark=true; if(t==1) printf( - ); printf(%c,G.xlist[v].data); t=1; for(w=FirstAdjVex(G,v);w=0;w=NextAdjVex(G,v,w)) { if(!G.xlist[w].mark) DFS(G,w); }}void BFSTraverse(OLGraph G){ int v,u,w; Queue Q; for(v=0;vG.vexnum;v++) G.xlist[v].mark

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档