实验4 无向图的深度优先搜索
来源:互联网 发布:农村淘宝怎么解绑 编辑:程序博客网 时间:2024/06/05 10:26
实验4 无向图的深度优先搜索
【实验内容】
设无向图G有n个点e条边,写一算法建立无向图G的邻接表,并按照深度优先搜索输出顶点。
【实验目的】
1、了解图的定义、特点,区分无向图和有向图的概念;
2、了解图的数据结构和搜索方法;
3、掌握无向图的邻接矩阵、邻接表的表示方法;
4、写出无向图的深度优先搜索程序。
【实验步骤与要求】
1、了解图的定义、特点,区分无向图和有向图的概念;
2、了解图的数据结构和搜索方法;
3、掌握无向图的邻接矩阵、邻接表的表示方法;
【实验内容】
设无向图G有n个点e条边,写一算法建立无向图G的邻接表,并按照深度优先搜索输出顶点。
【实验目的】
1、了解图的定义、特点,区分无向图和有向图的概念;
2、了解图的数据结构和搜索方法;
3、掌握无向图的邻接矩阵、邻接表的表示方法;
4、写出无向图的深度优先搜索程序。
【实验步骤与要求】
1、了解图的定义、特点,区分无向图和有向图的概念;
2、了解图的数据结构和搜索方法;
3、掌握无向图的邻接矩阵、邻接表的表示方法;
4、写出无向图的深度优先搜索程序。
代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>int num[1005];//存与第i个节点相邻的节点数目int p[1005][1005];//静态邻接表,p[i][j]表示编号为i的节点相邻的第j个节点的标号为多少int vis[1005];//用于判断dfs时是否进过第i个节点void dfs(int index)//从下标为index的节点搜索{ int i,u; printf("%d ",index); for(i=0;i<num[index];i++)//遍历与index相邻的所有节点 { u=p[index][i]; if(!vis[u])//如果没有访问过就递归访问 { vis[u]=1;//标记置为1表示访问了 dfs(u); } }}int main(){ int i,j,n,m,x; printf("请输入点的个数:"); scanf("%d",&n); memset(num,0,sizeof(num));//初始化与所有相邻的节点数目为0 memset(vis,0,sizeof(vis));//初始化所有vis数组表示都没遍历过 for(i=1;i<=n;i++) { printf("输入与%d相邻的点个数:",i); scanf("%d",&m); printf("输入与%d相邻的点:",i); for(j=0;j<m;j++) { scanf("%d",&x); p[i][num[i]]=x; num[i]++; } } vis[1]=1;//从下标为1开始dfs dfs(1); return 0;}
阅读全文
0 0
- 实验4 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索
- 无向图的深度优先搜索(最终版)
- 算法: 无向图的深度优先搜索(dfs)和广度优先搜索(bfs)
- java实现无向图的深度优先搜索和广度优先搜索
- 算法#17--无向图的深度优先搜索和广度优先搜索
- 基于邻接矩阵的无向图构造,以及宽度优先、深度优先搜索(Java)
- 无向图的深度优先遍历
- 创建无向图并深度优先搜索
- 无向图的广度优先搜索
- Java实现图:邻接矩阵表示、深度优先搜索、广度优先搜索、无向图的最小生成树
- java版无向图的深度优先搜索,求连通图个数
- 无向图的深度优先搜索(采用邻接表存储)C++实现
- 无向图的深度和广度优先搜索遍历(C)
- 无向图的深度优先搜索(采用邻接表存储)C++实现
- 阿里云主机用QQ邮箱发送邮件
- UIStepper
- css input[type=file] 样式美化,input上传按钮美化
- 关于ubuntu16.04的几个免密操作
- hdu 1010 Tempter of the Bone(dfs+枝剪)
- 实验4 无向图的深度优先搜索
- C++ 指针数组 & 指向数组的指针
- Linux下安装Zookeeper
- (转) char c=128;printf("%d",c);问题
- Freso的图片缓存
- Android动画解析(一)-----逐帧动画和补间动画
- 文本批量处理方法大全
- Hibernate Validation使用示例及讲解
- vs2015配置Opencv3.3.1