c++数据结构第六周(图),深搜、广搜(stl版)

2023-11-16

本方法皆用vector进行邻接表模拟

7-1 图的先深搜索
作者 唐艳琴
单位 中国人民解放军陆军工程大学

输出无向图的给定起点的先深序列。
输入格式:

输入第一行给出三个正整数,分别表示无向图的节点数N(1<N≤10)、边数M(≤50)和探索起始节点编号S(节点从1到N编号)。

随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号。
输出格式:

输出从S开始的无向图的先深搜索序列,用一个空格隔开,最后也有一个空格;如果为非连通图,再在结尾处另起一行输出一个0,表示此图非连通。

由于深度优先遍历的节点序列是不唯一的,为了使得输出具有唯一的结果,我们约定以表头插入法构造邻接表。
输入样例1:

6 8 2
1 2
2 3
3 4
4 5
5 6
6 4
3 6
1 5

输出样例1:

2 3 6 4 5 1

输入样例2:

4 3 1
1 2
2 3
3 1

输出样例1:

1 3 2
0
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int n,m,s,a,b,cnt;
vector<int>road[15];
bool check[15];
void dfs(int now){
	check[now]=true;
	cout<<now<<" ";
	cnt++;
	for(int i=road[now].size()-1;i>=0;--i){
		if(!check[road[now][i]]){
			dfs(road[now][i]);
		}
	}
}
int main(){
	cin>>n>>m>>s;
	while(m--){
		cin>>a>>b;
		road[a].push_back(b);
		road[b].push_back(a);
	}
	dfs(s);
	cout<<(cnt==n?"":"\n0");
}

7-2 图的先广搜索
作者 唐艳琴
单位 中国人民解放军陆军工程大学

输出无向图的给定起点的先广序列。
输入格式:

输入第一行给出三个正整数,分别表示无向图的节点数N(1<N≤10)、边数M(≤50)和探索起始节点编号S(节点从1到N编号)。

随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号。
输出格式:

输出从S开始的无向图的先广搜索序列,用一个空格隔开,最后也有一个空格;如果为非连通图,再在结尾处另起一行输出一个0,表示此图非连通。

由于广度优先遍历的节点序列是不唯一的,为了使得输出具有唯一的结果,我们约定以表头插入法构造邻接表。
输入样例:

6 8 2
1 2
2 3
3 4
4 5
5 6
6 4
3 6
1 5

输出样例:

2 3 1 6 4 5
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int n,m,s,a,b,cnt;
vector<int>road[15];
bool check[15];
queue<int>q;
void bfs(int begin){
	q.push(begin);
	while(!q.empty()){
		begin=q.front();q.pop();
		if(check[begin]) continue;
		cout<<begin<<" ";check[begin]=true;cnt++;
		for(int i=road[begin].size()-1;i>=0;--i){
			q.push(road[begin][i]);
		}
	}
}
int main(){
	cin>>n>>m>>s;
	while(m--){
		cin>>a>>b;
		road[a].push_back(b);
		road[b].push_back(a);
	}
	bfs(s);
	cout<<(cnt==n?"":"\n0");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++数据结构第六周(图),深搜、广搜(stl版) 的相关文章

随机推荐

  • deeplearning.ai课程作业:Course 1 Week 2

    deeplearning ai课程作业 Course 1 Week 2 原始作业在GitHub上下载 本文仅作为本人学习过程的记录 含答案 不喜勿看 全部自己跑过 保证可行 Part 1 Python Basics with Numpy o
  • input的复选框

  • redis 查看所有的key方式介绍

    本文主要介绍了redis 查看所有的key方式 具有很好的参考价值 希望对大家有所帮助 一起跟随微点阅读小编过来看看吧 可以使用KEYS 命令 1 KEYS pattern 例如 列出所有的key 1 redis gt keys 列出匹配的
  • SpringBoot漏洞大全

    原文出处 SpringBoot漏洞 qq com 前段时间做渗透 发现了一个很眼熟的页面 长这个样子 页面log是 去世界最大的同性交友网github com搜了一下 发现了一个十分详细的文章 存在大量接口信息泄露 成功交差 我打的网站有h
  • 【Python】Windows 11下更改python默认的pip install包安装路径

    Windows 11下更改python默认的pip install包安装路径 看到CSDN和知乎上有很多文章写如何修改pip包的默认安装路径 看了一遍基本都不管用 经过一定时间的摸爬滚打 终于找到了如何修改pip install默认安装路径
  • pychram 安装大三方库总是提示pip版本不匹配

    1 查看pip版本号 terminal终端执行pip list查看当前pip版本号 file settings project pychramproject python interpreter目录下查看搜索pip最新版本号 2 在文件夹地
  • This file isn‘t in your working directory. Teammates you share this request with won‘t be able to us

    postman上传图片文件问题 解决方案 进入设置 file gt settings 上传的文件必须在设置的工作区中 不然会报错 选择body file
  • python入门--Vscode创建python项目

    在VS Code中创建Python项目可以通过以下步骤实现 1 打开VS Code 2 点击左侧的 资源管理器 图标 3 选择一个文件夹 右键点击新建文件夹 命名为你的项目名称 4 打开终端 使用以下命令创建虚拟环境 python m ve
  • 杂项知识

    挂载 img 文件 mount t proc o loop initrd 2 6 23 1 42 fc8 img mnt img mount t debugfs o loop initrd 2 6 23 1 42 fc8 img mnt i
  • CCF-CSP真题《202305-2 矩阵运算》思路+python,c++满分题解

    想查看其他题的真题及题解的同学可以前往查看 CCF CSP真题附题解大全 试题编号 202305 2 试题名称 矩阵运算 时间限制 5 0s 内存限制 512 0MB 问题描述 题目背景 Softmax Q KTd V 是 Transfor
  • 基于openwrt平台搭建局域网技术验证之二

    1 测试目的 验证l2tp服务器模式的可行性 提供vpn l2tp模式的服务器功能 供客户端连接访问内网 2 参考资料 参考连接1 https www jianshu com p ccf8f2cca70e 参考连接2 https openw
  • win10小课堂:如何彻底关闭windows defender

    win10小课堂 如何彻底关闭windows defender Windows10系统中自带了windows defender杀毒软件 但是不少用户对它的评价褒贬不一 其一是扫描的频率太高 占用大量CPU 其二是有些文件 不经过任何提示就直
  • 解决 Command "python setup.py egg_info" failed with error code 1 问题

    解决 Command python setup py egg info failed with error code 1 问题 参考 pip install unroll python setup py egg info failed wi
  • 第七章软件静态测试

    7 1静态测试 静态测试 静态测试是指不运行被测程序本身 通过分析或检查源程序的语法 结构 过程 接口等来检查程序的正确性 其被测对象是各种与软件相关的有必要进行测试的产物 是对需求规格说明书 软件设计说明书 源程序做结构分析 流程图分析
  • Flex 布局

    一 Flex布局 Flex 是Flexible Box的缩写 意思是弹性布局 用来为盒模型布局提供最大的灵活性 任何一个容器都可以指定为flex布局 box display flex 行内元素也可以使用flex布局 box display
  • TCP报文段结构

    TCP报文段结构 源端口号和目的端口号 含义从名字就能看出来 序号和确认号 这二个字段被 TCP 发送方和接收方用来实现可靠数据传输服务 每个字段都是32比特 接收窗口 该字段用于流量控制 大小为16比特 首部长度 该字段指示了以 32 比
  • 12串口通信的定义-2

    1 设备状态信号线 数据装置准备好 DSR 高电平有效 数据终端准备好 DTR 高电平有效 2 请求发送 RTS 当数据终端设备 DTE 要发 允许发送 CTS 是对请求发送信号 RTS 的 3 接收控制线 载波检测 DCD 当数据通信设备
  • ultraiso 下载+破解+Linux U盘启动制作

    1 到官网下载ultraiso https cn ultraiso net xiazai html 2 将该软件安装到windows上 打开输入注册码进行破解 用户名 Guanjiu 注册码 A06C 83A7 701D 6CFC 3 破解
  • 处理雪花算法等造成的精度丢失问题

    前端js精度丢失因为number处理的是16位 雪花算法是19位 在前后端交互的时候就会造成精度损失 方法一 如果是专门针对某一个Id的话 JsonSerialize using ToStringSerializer class 注解可以实
  • c++数据结构第六周(图),深搜、广搜(stl版)

    本方法皆用vector进行邻接表模拟 7 1 图的先深搜索 作者 唐艳琴 单位 中国人民解放军陆军工程大学 输出无向图的给定起点的先深序列 输入格式 输入第一行给出三个正整数 分别表示无向图的节点数N 1