图的深度优先遍历序列
- Description
图(graph)是数据结构 G=(V,E),其中V是G中结点的有限非空集合,结点的偶对称为边(edge);E是G中边的有限集合。设V={0,1,2,……,n-1},图中的结点又称为顶点(vertex),有向图(directed graph)指图中代表边的偶对是有序的,用(”<”u,v>)代表一条有向边(又称为弧),则u称为该边的始点(尾),v称为边的终点(头)。无向图(undirected graph)指图中代表边的偶对是无序的,在无向图中边(u,v )和(v,u)是同一条边。
输入边构成无向图,求以顶点0为起点的深度优先遍历序列。
- Input
第一行为两个整数n、e,表示图顶点数和边数。以下e行每行两个整数,表示一条边的起点、终点,保证不重复、不失败。1≤n≤20,0≤e≤190
- Output
前面n行输出无向图的邻接矩阵,最后一行输出以顶点0为起点的深度优先遍历序列,对于任一起点,首先遍历的是终点序号最小的、尚未被访问的一条边。每个序号后输出一个空格。
- Sample Input
4 5
0 1
0 3
1 2
1 3
2 3
- Sample Output
0 1 0 1
1 0 1 1
0 1 0 1
1 1 1 0
0 1 2 3
#include<cstdio>
#include<iostream>using namespace std;int map[21][21];
int used[21];
int n,e;void dfs(int v,int count)
{int steak[210],i;int top=0;steak[top++]=v;printf("%d ",v);used[v]=1;while(top>0){int x=steak[top-1];for(i=1;i<n;i++){if(!used[i]&&map[x][i]){steak[top++]=i;printf("%d ",i);used[i]=1;count++;break;}}if(i==n)top--;}if(count<n){for(int i=1;i<n;i++)if(!used[i])dfs(i,count);}
}int main()
{// freopen("in.txt","r",stdin);int x,y;scanf("%d%d",&n,&e);for(int i=0;i<e;i++){scanf("%d%d",&x,&y);map[x][y]=map[y][x]=1;}for(int i=0;i<n;i++){for(int j=0;j<n;j++)printf("%d ",map[i][j]);printf("\n");}dfs(0,0);printf("\n");return 0;
}
图的深度优先遍历序列相关推荐
- 10.图的深度优先遍历序列是否唯一?为什么?
不唯一 因为邻接点入栈的时候的顺序不是固定的
- 广度优先搜索生成树怎么画_图的深度优先遍历与广度优先遍历以及最小生成树...
图的深度优先遍历 题目:写出附从每个顶点出发的一次深度优先搜索遍历序列.在纸上画出遍历过程和序列,提交截图. 错误回答 从A点开始遍历:0124-01324-0134-0324-034 从B点开始遍历 ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...
- 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...
- 数据结构 图的深度优先遍历 C
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Bool ...
- java语言实现图的深度优先遍历
java语言实现图的深度优先遍历: 图的存储采用的是邻接矩阵存储的方式,对下面的无向图进行遍历 代码如下: public class Deep {int count=0;public static v ...
- C++实现图的深度优先遍历和广度优先遍历
图的深度和广度优先遍历 图的深度优先遍历 1.算法思想 2.邻接矩阵构造图 3.邻接表构造图 图的广度优先遍历 1.算法思想 2.邻接矩阵构造图 图的深度优先遍历 1.算法思想 (1)从图中的某个初始 ...
- 邻接矩阵存储图的深度优先遍历
练习6.1 邻接矩阵存储图的深度优先遍历 (20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visi ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索
线性存储元素时,元素的关系也同时确定了.而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的关系. 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位 ...
最新文章
- yolo-mask的损失函数l包含三部分_【AI初识境】深度学习中常用的损失函数有哪些?...
- Android中利用HttpClient建立一次持久的连接
- dede标签用法(来源网页)
- 升级MAC OX上的Python到3.4
- mysql截取字符串中的部分内容_Mysql字符串截取及获取指定字符串中的数据
- 漫画算法:无序数组排序后的最大相邻差值
- echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...
- C语言结构体练习-互动粒子仿真
- [转载]MySQL事务隔离级别
- cad缩放_mac有没有好用的cad看图软件?CAD迷你看图 for Mac4.4.1激活版分享给大家...
- 2008年希赛软考学院招生
- c语言程序设计安卓,C语言编程学习app下载-C语言编程学习 安卓版v2.1.2-PC6安卓网...
- Keil(MDK)4升级到Keil(MDK)5
- 使用linaro工具链编译ARM64架构内核
- java无法验证证书_如何解决“证书无效,不能用于验证本网站的身份”错误?...
- exlsx中定义名称步骤_excel定义名称详解
- 炫龙T50热键功能键
- 树莓派 交叉编译工具链的安装
- phalapi-入门篇1(简单介绍以及环境搭建)
- java里dialect_java – Hibernate:没有设置方言.设置属性hibernate.dialect
热门文章
- 若多张表互为外键约束,如何删除
- 腾讯微服务框架-MSEC(spp-rpc)
- Android 使用MediaPlayer播放网络音频
- java tcp dtu_使用有人DTU设备接入OneNet(基于TCP透传)
- 基于python编写一个名片管理系统
- 8051单片机基础3:C51内存模型(small, compact和large)
- 能开matlab的轻薄本,求推荐女生用轻薄本 - 笔记本电脑(Notebook)版 - 北大未名BBS...
- 论文解读:U-Net: Convolutional Networks for Biomedical Image Segmentation
- mysql 存储时间应该是时间戳还是时间_3分钟短文 | MySQL存时间,到底该用timestamp还是datetime?...
- 笔记本电脑分屏显示设置