图的按录入顺序深度优先搜索

5000(ms)

10000(kb)

2295 / 4163

Tags: 深度优先

图的深度优先搜索类似于树的先根遍历,即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”至“Z”中的若干字符表示,且要求结点的访问顺序根据录入的顺序进行访问。如果结点录入的顺序为HUEAK,从H开始进行深度优先搜索,则可能的搜索结果为:H->A->K->U>E.

输入

第一行为一个整数n,表示顶点的个数,第二行为n个大写字母构成的字符串,表示顶点,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,否则为相应的边的长度。最后一行为一个字符,表示要求进行深度优先搜索的起始顶点。

输出

用一行输出深度优先搜索结果,起始点为给定的顶点。

样例输入

5
HUEAK
0 0 2 3 0
0 0 0 7 4
2 0 0 0 0
3 7 0 0 1
0 4 0 1 0
H

样例输出

HEAUK
#include<stdio.h>
void CreateMap(int edges[100][100],int n)//创建邻接矩阵
{for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&edges[i][j]);
}
void DFS(int i,int a[],char str[],int edges[100][100],int n)//深度优先搜索
{if(a[i]==0)//改点为被标记时 {printf("%c",str[i]);//输出对应的符号,并且标记 a[i]=1;for(int j=0;j<n;j++)//深度递归,递归结束后再j+1;然后再递归 {if(edges[i][j]!=0)DFS(j,a,str,edges,n);}}
}
int main()
{int edges[100][100];int n;char str[100];scanf("%d",&n);scanf("%s",str);CreateMap(edges,n);char data;getchar();//抵消回车字符 scanf("%c",&data);for(int i=0;i<n;i++){if(str[i]==data)//找到该字符对应的行 {int a[100]={0};//初始化标记 DFS(i,a,str,edges,n);break;}}
}

西南科技大学OJ题 图的按录入顺序深度优先搜索1068相关推荐

  1. 西南科技大学OJ题 邻接矩阵到邻接表1055

    邻接矩阵到邻接表 5000(ms) 10000(kb) 2341 / 5552 假设无向图G采用邻接矩阵存储,编写一个算法输出邻接表. 输入 第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1) ...

  2. 西南科技大学OJ题 求最小生成树(Prim算法)1075

    求最小生成树(Prim算法) 1000(ms) 10000(kb) 2256 / 4495 Tags: 生成树 求出给定无向带权图的最小生成树.图的定点为字符型,权值为不超过100的整形.在提示中已经 ...

  3. 西南科技大学OJ题 邻接矩阵存储简单路径1070

    邻接矩阵存储简单路径 5000(ms) 10000(kb) 2197 / 4175 Tags: 邻接矩阵 假设无向图G采用邻接矩阵存储,设计一个算法,输出图G中从顶点u到v的所有简单路径. 输入 简单 ...

  4. 西南科技大学OJ题 哈夫曼译码0986

    哈夫曼译码 1000(ms) 10000(kb) 1974 / 4142 通常要求根据给定的编码本对密文进行解码.现已给定相应字符的哈夫曼编码,要求根据编码对密文进行解码.(建立哈夫曼树以及编码.主函 ...

  5. 西南科技大学OJ题 顺序表插入操作的实现0943

    顺序表插入操作的实现 建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data.如果指定的数据元素item不存在,则将data插入到顺序表的尾端.(数据类型为整型) 输入 第一行为顺序表 ...

  6. 西南科技大学OJ题 单链表的删除操作的实现0953

    单链表的删除操作的实现 1000(ms) 65535(kb) 2896 / 13622 建立长度为n的单链表,删除第i个结点之前的结点. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自 ...

  7. 西南科技大学OJ题 above average 0706

    above average 1000(ms) 65535(kb) 1531 / 3045 It is said that 90% of frosh expect to be above average ...

  8. 货币套汇(图路径)【数据结构-深度优先搜索-回路】

    这题感觉有点小难(估计还是我太菜 题目描述 套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币.例如,假定1 美元可以买0.7 英镑,1 英镑可以买9.5 法郎,1法郎可以买 ...

  9. 数据结构学习笔记——图的遍历算法(深度优先搜索和广度优先搜索)

    目录 一.图的遍历概念 二.深度优先搜索(DFS) (一)DFS算法步骤 1.邻接表DFS算法步骤 2.邻接矩阵DFS算法步骤 (二)深度优先生成树.森林 (三)DFS的空间复杂度和时间复杂度 三.广 ...

  10. 数据结构--图--图的数组存储表示,深度优先搜索遍历和广度优先搜索遍历

    图有四种存储结构:数组,邻接表,十字链表,邻接多重表.下面以数组为存储结构来实现图的深度优先搜索遍历和广度优先搜索遍历.其中广度优先搜索遍历中有用到STL中的queue,注意头文件的包含.具体代码如下 ...

最新文章

  1. java-错误log4j:WARN No appenders could be found for logger
  2. 【学习笔记】15、标准数据类型—集合
  3. Django框架下报的版本问题
  4. 实验五——循环结构学习总结
  5. java 关闭时_java – 活动关闭时服务停止
  6. 数字图像处理 实验一 图像的基本运算
  7. Lua基础---lua字符串库函数详解,实例及正则表达式
  8. python执行的命令_如何在Python中执行外部命令
  9. Mysql优化(出自官方文档) - 第八篇(索引优化系列)
  10. 李华锦叔叔:追女生该如何正确的花钱?
  11. 我在淘宝做前端的这三年 — 第二年
  12. 【qt】QWS和 QPA
  13. 纯C语言INI文件解析
  14. matlab在智能遥控的应用论文,(精品)基于MATLAB的智能控制系统的介绍与设计实例最新毕业论文...
  15. yii2 gii生成curd
  16. SQL Server 2019安装后出现连接失败
  17. 计算机图形学 顶点定义_在计算机图形学中定义一个圆
  18. EXCEL的查询功能Vlookup
  19. batch size的作用及如何设置
  20. HTTP 状态码详解大全 | HTTP Status Codes

热门文章

  1. 常用计算机office操作知识,计算机基础知识及OFFICE常用操作_
  2. 使用原生js发送请求
  3. python博弈论代码_博弈论的算法总结
  4. 网络工程师计算机职称考试,软考网络工程师中级职称评定条件
  5. html颜色代码生成器,在线取色配色工具,CSS3渐变色代码生成器-易玩稀有
  6. Open3D:DBSCAN(C++)
  7. 《2018华为92家核心供应商及其供应产品》
  8. Appscan的下载安装
  9. Datasqueeze v2.0.7
  10. SI9000阻抗计算教程