- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构试验十一图的遍历操作-read
数据结构实验图的遍历操作一、实验目的:完成对图的创建,并实现图的深度优先遍历和广度优先遍历二、实验内容:1、 所输入的数据要为整形数据2、 输出的形式为:每按一次回车,遍历一个结点3、 能创建最大结点树为30的任意图,实现对无向图的两种遍历程序流程:main()clrscr()---visited()---DFS()---visited()---BFS()4、源程序:#include stdlib.h /*引用两个头文件*/#define maxvex 30 /*定义MAXVEX=30*/struct edgenode /*定义边的结构体*/{int adjvex;char info;struct edgenode*next;};struct vexnode /*定义点的结构体*/{char data;struct edgenode*link;};typedef struct vexnode adjlist[maxvex]; /*自定义adjlist为结构体数组类型*/adjlist tu1; /*定义结构体数组变量tu1*/void creategraph(adjlist g,int n) /*图创建函数*/{int e,i,s,d; /*定义存储边、点的变量*/struct edgenode*p,*q; /*定义边的结构体指针*/printf(the point(n) and edge(e):); /*显示提示输入点,边*/scanf(%d,%d,n,e); /*接收点、边存入n,e中*/for(i=1;i=n;i++){getchar(); printf(\tthe %d information:,i); /*提示输入结点信息*/scanf(%c,g[i].data); /*存储信息*/g[i].link=NULL; /*最后指针为空*/}for(i=1;i=e;i++){printf(\nthe%d edges=\n\t :,i); /*提示输入边信息*/scanf(%d,%d,s,d); /*接收边的信息*/p=(struct edgenode*)malloc(sizeof(struct edgenode));q=(struct edgenode*)malloc(sizeof(struct edgenode)); /*开辟两个存储边的空间*/p-adjvex=d; /*把其中一个点存储下来*/p-info=g[d].data; q-adjvex=s; /*把另一个点存储下来*/q-info=g[s].data;p-next=g[s].link; /*p和s的link指针连接起来*/g[s].link=p;q-next=g[d].link; /*q和s的link指针连接起来*/g[d].link=q; /*完成一个边的创建*/}}int visited[maxvex]; /*定义访问数组*/void dfs(adjlist adj,int v) /*深度优先遍历函数*/{int i;struct edgenode*p; /*定义边指针*/visited[v]=1; /*把开始遍历的点在访问数组中标识*/printf(now is at point %d,v); /*输出正访问的点*/p=adj[v].link;printf(the data is %c \n,adj[v].data); /*输出点的信息*/getch();while(p){if(visited[p-adjvex]==0)dfs(adj,p-adjvex); /*没有访问的再调用DFS函数*/p=p-next; /*访问过的判断下一个*/}}int quene[maxvex];void bfs(adjlist adj,int vi) /*广度优先遍历函数*/{int m=maxvex; /*定义一个队列*/int front=0,rear=1,v;struct edgenode*p; /*定义边指针*/visited[vi]=1; /*开始访问的点标识一下*/printf(now visit the point:%d\n,vi); /*输出正访问的点*/getch();quene[rear]=vi; /*把访问过的点放入数组中*/while(front!=rear){front=(front+1)%m;v=quene[front];p=adj[v].link;while(p){if(visited[p-adjvex]==0) /*判断p-adjvex点是否访问过*/{visite
您可能关注的文档
最近下载
- 专题07 铁、铝及其化合物(期末真题汇编)(解析).docx VIP
- 专题05 氯及其化合物(期末真题汇编)(解析).docx VIP
- 呼和浩特市上学期小学六年级数学能力测评试卷.doc VIP
- 浙江理工大学2020-2021学年《实验心理学》期末考试试卷(A卷)含参考答案.docx
- 中职数学开启函数之旅教学能力比赛教案.pdf
- 专题05 电离平衡 水的电离和溶液的pH(考题猜想)(8大题型)(解析版).docx VIP
- 设计9储罐泄露模拟报告aloha.pdf VIP
- 专题04 化学反应的方向和调控(考题猜想)(5大题型)(解析版).docx VIP
- 专题01 化学反应的热效应(考题猜想)(8大题型)(解析版).docx VIP
- 专题09 电解池 金属的腐蚀与防护(考题猜想)(9大题型)(原卷版).docx VIP
原创力文档


文档评论(0)