当前位置: 首页 > news >正文

数据结构-怀化学院期末题(322)

图的深度优先搜索

题目描述:
图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”至“Z”中的若干字符表示,且要求结点的访问顺序根据“A”至“Z”的字典顺序进行访问。例如有如下图:

如果要求从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

样例输出:

 H A K U E

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
typedef pair<int,int> PII;
const int N = 1e5 + 10;
int n;
string str;
int a[26][26],book[26];
char c;
int main(){cin >> n;cin >> str;for(int i = 0;i < n;i ++)for(int j = 0;j < n;j ++)cin >> a[str[i] - 'A'][str[j] - 'A'];cin >> c;stack<int> st;st.push(c-'A');book[c-'A'] = 1;cout << c << ' ';while(st.size()){auto t = st.top();st.pop();if(!book[t]) cout << (char)(t + 'A') << " ";book[t] = 1;for(int i = 25;i >= 0;i --){if(a[t][i] != 0 && book[i] == 0){st.push(i);}}}return 0;
}

http://www.lryc.cn/news/278743.html

相关文章:

  • 小手也能用的高性能鼠标,自定义空间还挺高,雷柏VT9Pro mini上手
  • CDN加速原理详解
  • sqlachemy orm create or delete table
  • 科普小米手机、华为手机、红米手机、oppo手机、vivo手机、荣耀手机、一加手机、realme手机如何设置充电提示音
  • zookeeper应用场景之分布式的ID生成器
  • Java--Spring项目生成雪花算法数字(Twitter SnowFlake)
  • 紫光展锐M6780丨画质增强——更炫的视觉体验
  • 控制el-table的列显示隐藏
  • 2024上海国际冶金及材料分析测试仪器设备展览会
  • 商业定位,1元平价商业咨询:豪威尔咨询!平价咨询。
  • 2. Presto应用
  • 工业级安卓PDA超高频读写器手持掌上电脑,RFID电子标签读写器
  • Prompt提示工程上手指南:基础原理及实践(一)
  • Redis如何保证缓存和数据库一致性?
  • 学完C/C++,再学Python是一种什么体验?
  • ssm基于Java的壁纸网站设计与实现论文
  • 零基础也可以探索 PyTorch 中的上采样与下采样技术
  • 代码随想录算法训练营Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 乱 弹 篇(一)
  • 《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
  • 在矩阵回溯中进行累加和比较的注意点
  • AI语音机器人的发展
  • SQL语句错误this is incompatible with sql_mode=only_full_group_by解决方法
  • 静态长效代理IP和动态短效代理IP有哪些用途?分别适用场景是什么?
  • 基于Spring Boot+Vue的课堂管理系统(前后端分离)
  • 供排水管网管理信息化的必要性
  • 统一格式,无限创意:高效管理不同格式图片批量转换
  • 工作电压范围宽的国产音频限幅器D2761用于蓝牙音箱,输出噪声最大仅-90dBV
  • 中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案
  • 亚马逊衣物收纳 梳妆台 收纳柜CPC认证ASTM F2057-23 报告分析