博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言图的建立及BFS,DFS遍历的代码
阅读量:6300 次
发布时间:2019-06-22

本文共 1737 字,大约阅读时间需要 5 分钟。

把开发过程中经常用到的一些内容段做个收藏,下面内容段是关于C语言图的建立及BFS,DFS遍历的内容,希望对各位也有用途。

#include <stdio.h>

#include <malloc.h>
#include <stdlib.h>
struct tnode
{
};
struct node
{
};
struct picture
{
};
int main()
{
char a;
p=createpicture();
while(1)
{
getchar();
printf("现在将对图进行遍历,若使用广度优先遍历,请输入a,若使用深度优先遍历请输入b,清屏请输入c,退出请输入d:n");
scanf("%c",&a);
if(a=='a')
{
printf("深度优先遍历如下:n");
traversebfs(p);
}
if(a=='b')
{
printf("广度优先遍历如下:n");
traversedfs(p);
}
if(a=='c')
system("cls");
if(a=='d')
exit(0);
}
return 0;
}
{
char a;
printf("请输入你要建立的图中的节点数以及图的类型(a表示无向图b表示有向图):n");
scanf("%d %c",&i,&a);
p->count=i;
p->a=a;
printf("请依次输入各节点的值(每输完一个节点的值按回车结束):n");
for(i=0;i<p->count;i++)
{
scanf("%d",&j);
p->nd[i].valu=j;
p->nd[i].link=NULL;
}
for(i=0;i<p->count;i++)
{
printf("输入与数据值为%d的节点相邻的节点的数据值(每输完一个节点的值按回车结束),若不再含有相邻的值请输入-1n",p->nd[i].valu);
while(1)
{
scanf("%d",&k);
if(k==-1)
break;
l=search(p,k);
if(l!=-1)
{
t->data=l;
t->next=p->nd[i].link;
p->nd[i].link=t;
}
else
printf("无此数据值!n");
}
}
return p;
}
{
int i;
for(i=0;i<p->count;i++)
{
if(value==p->nd[i].valu)
{
return i;
}
}
return -1;
}
{
int i;
for(i=0;i<p->count;i++)
{
visit[i]=0;
}
for(i=0;i<p->count;i++)
{
if(visit[i]==0)
{
dfs(p,i,visit);
}
}
}
{
printf("%dn",q->nd[i].valu);
visit[i]=1;
w=q->nd[i].link;
while(w!=NULL)
{
if(visit[w->data]==0)
{
dfs(q,w->data,visit);
}
else
{
w=w->next;
}
}
}
{
int i;
for(i=0;i<p->count;i++)
{
visit[i]=0;
}
for(i=0;i<p->count;i++)
{
if(visit[i]==0)
{
bfs(p,i,visit);
}
}
}
{
int f,r;
int v;
f=r=0;
visit[i]=1;
printf("%dn",q->nd[i].valu);
a[r]=i;
while(f!=r)
{
v=a[f];
w=q->nd[v].link;
while(w!=NULL)
{
if(visit[w->data]==0)
{
visit[w->data]=1;
printf("%dn",q->nd[w->data].valu);
a[r]=w->data;
r++;
}
w=w->next;
}
}
}

 

转载于:https://www.cnblogs.com/appdw/p/10880392.html

你可能感兴趣的文章
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
代码大全读后感(二)
查看>>
HTTP协议
查看>>
nyoj 715 Adjacent Bit Counts
查看>>
[转] JavaScript:彻底理解同步、异步和事件循环(Event Loop)
查看>>