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

东莞市品牌网站建设手机网站 动态 页面 好 静态页面好

东莞市品牌网站建设,手机网站 动态 页面 好 静态页面好,做汤的网站,网络管理网址题目描述 给定一棵大小为 n n n,根为 1 1 1 的树,求出其按照 dfs 和 bfs 进行遍历时的顺序。 请将所有出点按照编号从小到大排序后进行遍历。 dfs 为深度优先搜索,bfs 为宽度优先搜索。 输入格式 一个整数 n n n,表示点的…

题目描述

给定一棵大小为 n n n,根为 1 1 1 的树,求出其按照 dfsbfs 进行遍历时的顺序。

请将所有出点按照编号从小到大排序后进行遍历。

dfs 为深度优先搜索,bfs 为宽度优先搜索。

输入格式

一个整数 n n n,表示点的个数。 ( 1 ≤ n ≤ 50 ) (1 \leq n \leq 50) (1n50)

接下来一行 n − 1 n-1 n1 个整数,表示点 2 ∼ n 2 \sim n 2n 的父亲 f a i fa_i fai ( 1 ≤ f a i ≤ n ) (1 \leq fa_i \leq n) (1fain)

输出格式

第一行输出 dfs 时的顺序,第二行输出 bfs 时的顺序。

样例输入1

4
1 1 2

样例输出1

1 2 4 3
1 2 3 4

样例输入2

5
1 2 2 4

样例输出2

1 2 3 4 5
1 2 3 4 5

思路

数组 fa 来存储每个节点的父节点,向量数组 edges 来存储图的边。

main 函数中,首先读取节点的数量 n,然后读取每个节点的父节点,将每个节点添加到其父节点的边列表中。接着,对每个节点的边列表进行排序,以保证遍历的顺序。

调用 dfs 函数进行深度优先搜索。在 dfs 函数中,首先将起始节点压入栈 s1,然后在栈不为空的情况下,弹出栈顶元素,打印其值,然后将其所有子节点(除去父节点)压入栈 s2。接着,将 s2 中的所有节点都压入 s1,这样就实现了深度优先的遍历顺序。

调用 bfs 函数进行广度优先搜索。在 bfs 函数中,首先将起始节点加入队列 q1,然后在队列不为空的情况下,弹出队首元素,打印其值,然后将其所有子节点(除去父节点)加入队列。这样就实现了广度优先的遍历顺序。


AC代码

#include <algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1e3 + 7;int n;
int fa[N];
vector<int> edges[N];void dfs(int x) {stack<int> s1;stack<int> s2;s1.push(x);while (s1.size()) {int t = s1.top();s1.pop();cout << t << " ";for (auto &i : edges[t]) {if (i == fa[t]) {continue;}s2.push(i);}while (s2.size()) {s1.push(s2.top());s2.pop();}}
}void bfs(int x) {queue<int> q1;q1.push(x);while (q1.size()) {int f = q1.front();q1.pop();cout << f << " ";for (auto &i : edges[f]) {if (i == fa[f]) {continue;}q1.push(i);}}
}int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;for (int i = 2; i <= n; i++) {cin >> fa[i];edges[fa[i]].push_back(i);}for (int i = 1; i <= n; i++) {sort(edges[i].begin(), edges[i].end());}dfs(1);cout << endl;bfs(1);cout << endl;return 0;
}
http://www.yayakq.cn/news/384621/

相关文章:

  • wordpress页面难看山西网络营销seo
  • 2008 iis 添加 网站 权限杭州做网站的科技公司
  • 好公司的网站设计短视频入口seo
  • 保定网站制作网页小吃店网站建设
  • 网站建设需求分析写什么免费站推广网站不用下载
  • 大气的房产网站网络热词有哪些
  • 建设主题网站一般要经历的顺序自己制作网站的步骤
  • 如何自己建网站服务器长治网站制作厂家
  • 企业做网站这些问题必须要注意国内最好的软件网站建设
  • 网站优化推广软件wordpress提问插件
  • 凡科自助建站平台网页制作培训北京
  • dw做的网站怎么被别人打开网站推广费用ihanshi
  • wdcp备份的数据库网站文件在哪里做网站坚持多少年会有起色
  • 徐州提供网站建设要多少钱网站建设工资高吗
  • 受欢迎的句容网站建设团员电子档案查询网
  • 内网穿透做网站帝国cms做门户网站
  • 网站维护与建设合同wordpress 标签云链接
  • 网站开发环境构建医院网站建设规划
  • 公司网站突然打不开了网络技术就业方向
  • 网站图片设置软件建网站上海
  • 视频直播系统开发网站建设wordpress 说明文档
  • 机械设备如何做网站浦东手机网站建设
  • 网站备案人授权西安百度推广运营公司
  • 设计网站登录框ps怎么做企业网站制作报价单
  • 一 一个甜品网站建设目标网站开发最新流程
  • 红酒网站模板北京网站建设z亿玛酷1专注
  • 专业网站建设搭建阿里培训网站建设
  • 怀化网站优化哪个好wordpress扫码验证下载
  • asp汽车销售公司网站源码 4s店网站源码 汽车网站建设 完整无万能浏览器官方免费版
  • 做软件下载网站有哪些太仓网站设计