1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

深度优先搜索(Depth First Search , DFS)是一种用于遍历或搜索图(图可以是树、无向图、有向图等)的算法。它按照深度优先的策略,优先访问当前节点的下一层邻接节点,直到无法继续为止,再回溯到上一层。

你可以先粗略的理解为:DFS就是在图上做特定的递归,DFS⊂递归DFS \subset 递归DFS⊂递归

前言:通过【图论的存储】图的存储,我们已经学会怎么把图存进邻接表且怎么遍历。由于树是有向无环图,所以树的存储和遍历和图基本是一致的。而本节课主要是让大家熟悉在笔试中1.树的两种读入方式以及2.树的先序遍历。

第一种读入形式:边形式

存储:这种读入形式将树看成一张图进行读入,本质就是我们上节课所学的读入形式,所以我们可以直接使用邻接表直接存储。

P3993.普通树的读入与构建

    2000ms Tried: 2879 Accepted: 755 Difficulty: 5 所属公司 : Hot100
    算法与标签>DFS

题目描述:

给定一棵 n 个节点的树,节点编号为1−n1-n1−n,树的根节点固定为 1。我们有两种方式表示树的结构:

  1. 方式一:通过 n-1 条边的形式,每条边 u v 表示节点 u 和节点 v 之间存在一条边。
  2. 方式二:通过一个 father 数组,father[i] 表示节点 i+1 的父节点。

请你编写程序,读入树的结构并使用深度优先搜索遍历打印这棵树的节点编号。

为了输出统一,从根节点开始遍历,优先访问序号小的子节点。

输入:

输入包含三部分:

  1. 第一行包含一个整数 n,表示树的节点个数。
  2. 第二行包含一个整数 type,表示树的表示方式:
    • 如果 type = 1,表示通过边的形式输入。
    • 如果 type = 2,表示通过 father 数组输入。
  3. 如果 type = 1,接下来会有 n-1 行,每行两个整数 u v,表示树中节点 u 和节点 v 之间存在一条边。
  4. 如果 type = 2,接下来一行有 n 个整数,father[i] 表示节点 i+1 的父节点,其中 father[0] = 0,表示 1 号节点为根节点,没有父节点。

输出:

打印遍历这棵树的节点编号。

输入样例 1:

5
1
1 2
1 3
2 4
2 5

输出样例 1:

1 2 4 5 3

样例1图例:

      1
     / \
    2   3
   / \
  4   5

输入样例 2:

5
2
0 1 1 2 2

输出样例 2:

1 2 4 5 3

数据范围:

  • 1≤n≤1051 \leq n \leq 10^51≤n≤105

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 36ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?