华为OD机试E卷 - 树状结构查询(Java & Python& JS & C++ & C )

题目描述

通常使用多行的节点、父节点表示一棵树,比如

西安 陕西
陕西 中国
江西 中国
中国 亚洲
泰国 亚洲

输入一个节点之后,请打印出来树中他的所有下层节点

输入描述

第一行输入行数,下面是多行数据,每行以空格区分节点和父节点

接着是查询节点

输出描述

输出查询节点的所有下层节点。以字典序排序

示例1

输入

5
b a
c a
d c
e c
f d
c

输出

d
e
f

说明

解题思路

这个题目描述了一棵树的结构,并要求我们找到一个给定节点的所有下层节点(即该节点的所有子节点及其后代节点)。

示例解释

输入

5
b a
c a
d c
e c
f d
c

解析

  • 树结构的表示:
    • b 的父节点是 a
    • c 的父节点是 a
    • d 的父节点是 c
    • e 的父节点是 c
    • f 的父节点是 d
  • 查询节点为 c,我们需要找出所有 c 的下层节点。

根据上述结构,我们可以构建以下树:

        a
       / \
      b   c
         / \
        d   e
       /
      f

查询节点c

输出结果

  • c 的直接下层节点是 de
  • d 的下层节点是 f
  • 因此,c 的所有下层节点为:d, e, f

字典序排序后,输出结果为:

d
e
f

Java

import java.util
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值