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

news2024/11/17 9:31:11

图的深度优先搜索

题目描述:
图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“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.coloradmin.cn/o/1368419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx部署前端项目自动化脚本

文章目录 配置入口服务器nginx的conf.d使用docker创建一个nginx配置自动化脚本 前言 将项目 通过nginx 部署到 新的服务器 通过nginx反向代理出去 配置入口服务器nginx的conf.d 一般在这个文件夹下 找不到使用 find / -name nginx 2>/dev/null 找到nginx 的位置如果有些没有…

限制选中指定个数CheckBox控件(2/2)

实例需求&#xff1a;工作表中有8个CheckBox控件&#xff08;下文中简称为控件&#xff09;&#xff0c;现在需要实现限制用户最多只能勾选4个控件。 在上一篇博客中已经实现了这个需求&#xff0c;其基本思路是用户选中第5个控件时&#xff0c;事件代码将取消勾选最后一个选中…

Python 开源扫雷游戏 PyMine 发布介绍视频

Python 开源扫雷游戏 PyMine 发布介绍视频 Python 开源扫雷游戏 PyMine 是笔者开发的基于 wxPython 的 Python 扫雷游戏&#xff0c;现已发布介绍视频。视频请见&#xff1a;https://www.bilibili.com/video/BV1aW4y1N7Dd/ PyMine 比较忠实的还原了微软的扫雷游戏。在算法设计…

HarmonyOS应用开发者基础认证考试

判断题 1.Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(True) 2.所有使用Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 错误(False) 3.每调用一次router.pushUrl()方法,…

【我与Java的成长记】之封装,继承详解(一)(能看懂文字就能明白系列)

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、封装&am…

美国NDC药品码注册详细介绍(OTC药品FDA注册)

美国药品验证号&#xff08;NDC&#xff09;注册介绍 希望我发布的文章能帮助到刷到的有缘人 国家药品验证号&#xff08;NDC&#xff09;是中国中药及OTC非处方药通过FDA认证的快捷申请形式。主要针对美国国家药典已有的药&#xff0c;无需做新药论证&#xff0c;只需提供必…

Mysql :Failed to obtain JDBC Connection

驱动版本需要跟新&#xff0c;同时驱动对应的pom依赖需要更新成mysql驱动对应版本&#xff0c;这里使用8.0.26版本。 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector}<…

C++八股学习心得.8

1.const知道吗&#xff1f;解释其作用 const 修饰类的成员变量&#xff0c;表示成员常量&#xff0c;不能被修改。 const修饰函数承诺在本函数内部不会修改类内的数据成员&#xff0c;不会调用其它非 const 成员函数。 如果 const 构成函数重载&#xff0c;const 对象只能调…

你好,2024!再见,2023!

大家好&#xff0c;我是南城余&#xff01; 今天是2023年最后一天&#xff0c;看到各位大佬都在分享今年的总结&#xff0c;我也来做个年度总结&#xff0c;是第一次做年度总结&#xff0c;希望以后可以每年都做一个好好的回顾。 说来可笑&#xff0c;标题&#xff0c;2023怎么…

高光谱分类论文解读分享之基于生成对抗性少数过采样的高光谱图像分类

IEEE TGRS 2022&#xff1a;基于生成对抗性少数过采样的高光谱图像分类 题目 Generative Adversarial Minority Oversampling for Spectral–Spatial Hyperspectral Image Classification 作者 Swalpa Kumar Roy , Student Member, IEEE, Juan M. Haut , Senior Member, IE…

DC-DC升压/降压 隔离电源解决方案PCB和原理图

DC-DC隔离电源模块是一种基于变换原理而设计的模块,可以将一种电压转变为另一种电压,同时实现电气信号的隔离和滤波作用。其工作原理基于电感和电容的原理,一般由输入电路、输出电路、开关电路和控制电路四部分组成。 DC-DC电源模块的众多优点是大家众所周知的&#xff0c;DC-…

Hyperledger Fabric 权限策略和访问控制

访问控制是区块链网络十分重要的功能&#xff0c;负责控制某个身份在某个场景下是否允许采取某个操作&#xff08;如读写某个资源&#xff09;。 常见的访问控制模型包括强制访问控制&#xff08;Mandatory Access Control&#xff09;、自主访问控制&#xff08;Discretionar…

学生用台灯多少瓦比较合适?适合学生用的护眼台灯推荐

近年来&#xff0c;随着电子产品的普及和使用时间的增长&#xff0c;人们对眼部健康的关注度也越来越高为了解决这一问题&#xff0c;护眼台灯便是在这样的背景下诞生的。护眼台灯是一种集成了先进技术的台灯&#xff0c;旨在减轻眼部疲劳和保护视力。学生是使用台灯的一大群体…

抖店新手如何申请开店?

我是电商珠珠 抖店大家都知道&#xff0c;热度高门槛低&#xff0c;所以有很多人都想去入驻。但是对于开店流程&#xff0c;还不太了解。 今天&#xff0c;我就来给大家详细的讲一下。 一、入驻前准备 在入驻之前&#xff0c;需要准备好一张营业执照&#xff0c;新手的话个…

JavaWeb——后端AOP面向特定方法编程

七、AOP 1. 概述 AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff1a;面向切面编程、面向方法编程&#xff0c;其实就是面向特定方法编程 场景&#xff1a; 案例部分功能运行较慢&#xff0c;定位执行耗时较长的业务方法&#xff0c;此时需要统计每个业务…

linux安装node.js

先去官网下载对应的版本 官网&#xff1a;https://nodejs.org/en/download 选择对应的版本&#xff0c;点这个&#xff0c;直接去虚拟机上面安装 # apt的系统 apt install -y wget # yum的系统 yum install -y wget下载包 wget https://nodejs.org/dist/v20.10.0/node-v20.…

后端程序员开发win小工具(未完待续)

github&#xff1a;https://gitee.com/forgot940629/win-tool-demo 本地启动&#xff0c;查看http://127.0.0.1:8080/form 场景 在日常工作中可能需要后端开发者开发一些辅助工具。这些辅助工具通常希望能想其他软件一样在桌面系统运行&#xff0c;并且有一些桌面应用的基本…

股票开户须知!北京股票开户佣金最低是多少?找那家证券公司开户手续费低?

股票交易是一种投资活动&#xff0c;需要一些基本的须知来帮助投资者进行决策和进行交易。以下是一些股票交易的基本须知&#xff1a; 了解股票市场&#xff1a;了解股票市场的基本原理、运作机制和相关法规是非常重要的。投资者应学习股票交易的基本概念和术语&#xff0c;了解…

BERT 模型是什么

科学突破很少发生在真空中。相反&#xff0c;它们往往是建立在积累的人类知识之上的阶梯的倒数第二步。要了解 ChatGPT 和 Google Bart 等大型语言模型 &#xff08;LLM&#xff09; 的成功&#xff0c;我们需要回到过去并谈论 BERT。 BERT 由 Google 研究人员于 2018 年开发&…

【算法练习】leetcode算法题合集之二叉树篇

递归遍历基础篇 前序遍历&#xff0c;中序遍历&#xff0c;后序遍历是根据处理根节点的位置来命名的。 树的处理大多用到了递归&#xff0c;递归需要知道终止条件。 前序遍历&#xff08;中左右&#xff09; 144.二叉树的前序遍历 中左右&#xff0c;先处理根节点&#xff0c;…