• 【华为OD机试】删除目录


    文件系统中有N个目录,每个目录都一个独一无二的ID。每个目录只有一个父目录,但每个父目录下可以有零个或者多个子目录,目录结构呈树状结构。假设,根目录的ID为0,且根目录没有父目录,其他所有目录的ID用唯一的正整数表示,并统一编号。
    现给定目录ID和其父目录ID的对应父子关系表[子目录ID,父目录ID],以及一个待删除的目录ID,请计算并返回一个ID序列,表示因为删除指定目录后剩下的所有目录,返回的ID序列以递增序输出。
    注意:
    1、被删除的目录或文件编号一定在输入的ID序列中
    2、当一个目录删除时,它所有的子目录都会被删除
    输入描述
    输入的第一行为父子关系表的长度m;接下来的行为m个父子关系对;最后-
    行为待删除的ID。序列中的元素以空格分割,参见样例。
    输出描述
    输出一个序列,表示因为删除指定目录后,剩余的目录ID.
    例1

    输入

    1. 5
    2. 8 6
    3. 10 8
    4. 6 0
    5. 20 8
    6. 2 6
    7. 8

    输出

    2 6


    说明
    目录结构如下所示

        6
      /    \
    2      8
          /    \
        10   20

    删除目录8,同时它的子目录10也被删除,剩余2和6两个目录

    思路:

    刚参与的机试,二星题反而比一星的简单,直接上结构体记录节点、父节点和删除标记,用搜索的方式递归往下删除

    代码:

    1. #include
    2. using namespace std;
    3. struct ac {
    4. int num;
    5. int fa;
    6. int del;
    7. } a[1005];
    8. bool cmp(ac a, ac b) {
    9. return a.num < b.num;
    10. }
    11. void find(int n, int x) {
    12. for (int i = 0; i < n; i++) {
    13. if (a[i].del)
    14. continue;
    15. if (a[i].num == x || a[i].fa == x) {
    16. // cout << "---del:" << x << " " << a[i].num << " " << a[i].fa << endl;
    17. a[i].del = 1;
    18. find(n, a[i].num);
    19. }
    20. }
    21. return;
    22. }
    23. int main() {
    24. int n, i, delNum;
    25. cin >> n;
    26. for (i = 0; i < n; i++) {
    27. cin >> a[i].num >> a[i].fa;
    28. a[i].del = 0;
    29. }
    30. cin >> delNum;
    31. find(n, delNum);
    32. // for (i = 0; i < n; i++) {
    33. // cout << a[i].num << " " << a[i].fa << " " << a[i].del << endl;
    34. // }
    35. sort(a, a + n, cmp);
    36. for (i = 0; i < n; i++) {
    37. if (a[i].del != 1) {
    38. cout << a[i].num << " ";
    39. }
    40. }
    41. return 0;
    42. }
  • 相关阅读:
    最大连续1的个数-力扣485-Java
    低代码开发技术选型
    2022-47~48周(11.07-11.20) 项目问题整理
    JAVA毕业设计136—基于Java+Springboot+Vue的房屋租赁管理系统(源代码+数据库)
    谁懂万方检索的高级检索嘛
    docker 部署prometheus和grafana
    信息收集工具集合
    基于Python网络爬虫的小说网站数据分析
    MIKE水动力笔记19_统计平均潮差
    rust字面量
  • 原文地址:https://blog.csdn.net/Xylon_/article/details/133967085