L2-006. 树的遍历

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

输入格式:

输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。

输出格式:

在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。

输入样例:

  1. 7
  2. 2 3 1 5 7 6 4
  3. 1 2 3 4 5 6 7

输出样例:

  1. 4 1 6 3 5 7 2
  2.  
  3. 喜欢这个博主的代码:https://blog.csdn.net/qq_34594236/article/details/63273098
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<queue>
  5. using namespace std;
  6. struct node
  7. {
  8. int num,left,right,h;
  9. }tree[];
  10. int i,n,len;
  11. int a[],b[];
  12. int findroot(int root,int l,int r)
  13. {
  14. for(i=l;i<=r;i++)
  15. if(b[i]==root) return i;
  16. }
  17. void buildtree(int root,int l,int r,int u)
  18. {
  19. if(l>r) return;
  20. int k=findroot(a[root],l,r);
  21. if(l<k)
  22. {
  23. tree[++len].num=a[root-(r-k)-];
  24. tree[len].h=tree[u].h+;
  25. tree[u].left=len;
  26. buildtree(root-(r-k)-,l,k-,len);
  27. }
  28. if(r>k)
  29. {
  30. tree[++len].num=a[root-];
  31. tree[len].h=tree[u].h+;
  32. tree[u].right=len;
  33. buildtree(root-,k+,r,len);
  34. }
  35. return;
  36. }
  37. void bfs()
  38. {
  39. queue<int> s;
  40. s.push();
  41. while(!s.empty())
  42. {
  43. int k=s.front();
  44. if (tree[k].left!=-) s.push(tree[k].left);
  45. if (tree[k].right!=-) s.push(tree[k].right);
  46. if (n>) printf("%d ",tree[k].num);
  47. else printf("%d\n",tree[k].num);
  48. n--;
  49. s.pop();
  50. }
  51. return;
  52. }
  53. int main()
  54. {
  55. scanf("%d",&n);
  56. for(i=;i<=n;i++)
  57. scanf("%d",&a[i]);
  58. for(i=;i<=n;i++)
  59. scanf("%d",&b[i]);
  60. for(i=;i<=n;i++)
  61. {
  62. tree[i].num=;
  63. tree[i].left=-;
  64. tree[i].right=-;
  65. tree[i].h=;
  66. }
  67. len=;
  68. tree[].num=a[n];
  69. tree[].h=;
  70. buildtree(n,,n,);
  71. //for(i=1;i<=n;i++)
  72. // printf("%d:%d %d\n",tree[i].num,tree[tree[i].left].num,tree[tree[i].right].num);
  73. bfs();
  74. return ;
  75. }

pat L2-006. 树的遍历的更多相关文章

  1. PAT甲级专题|树的遍历

    PAT甲级专题-树的遍历 涉及知识点:树.建树.深度优先搜索.广度优先搜索.递归 甲级PTA 1004 输出每一层的结点,邻接表vector建树后.用dfs.bfs都可以边搜边存当前层的数据, #in ...

  2. (PAT)L2-006 树的遍历 (二叉树构建)

    题目链接:https://www.patest.cn/contests/gplt/L2-006 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格 ...

  3. pat -1004(树的遍历)

    题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184 思路: (1)用vector记录每 ...

  4. GPTL—练习集—006树的遍历

    #include<bits/stdc++.h> using namespace std; typedef int daTp;//datatype typedef struct BTNode ...

  5. pat 团体天梯赛 L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  6. 天梯 L2 树的遍历(已知后序中序求层序)

    树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行 ...

  7. L2-006 树的遍历 (25 分) (根据后序遍历与中序遍历建二叉树)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 L2-006 树的遍历 (25 分 ...

  8. javascript实现数据结构: 树和二叉树的应用--最优二叉树(赫夫曼树),回溯法与树的遍历--求集合幂集及八皇后问题

    赫夫曼树及其应用 赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用. 最优二叉树(Huffman树) 1 基本概念 ① 结点路径:从树中一个结点到另一个结点的之间的分支 ...

  9. PTA 7-10 树的遍历(二叉树基础、层序遍历、STL初体验之queue)

    7-10 树的遍历(25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...

随机推荐

  1. BASE1(matlab)

    version memory clc clear tab键 F5键  运行m文件 F9键  只运行选中的 Ctrl+R  注释 Ctrl+T  反注释 Ctrl+I   格式化代码 edit xxx. ...

  2. PDO对象

    <?php //造DSN:驱动名:dbname=数据库名;host=服务器地址 $dsn = "mysql:dbname=mydb;host=localhost"; //造P ...

  3. UIDynamic物理仿真

    UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象, 比如重力.弹性碰撞等现象,UIKit动力具有可组合.可重用和声明式 ...

  4. android配置文件详解

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...

  5. HDU 5366 The mook jong

    先暴力写了一个DFS,然后找规律.. #include<cstdio> #include<cstring> #include<cmath> #include< ...

  6. iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变

    可以选择是使用自定制的还是系统的,如果使用自定制的,就使用以下方法即可隐藏系统的uitabbarButton,从而使item恢复正确 //隐藏UITabBarButton -(void)viewWil ...

  7. HBase全分布安装配置

    分布式的hbase依赖于Zookeeper集群所有正常工作节点都必须能够访问zookeeper:用户可以通过启动和关闭脚本就可以把zookeeper当做hbase的一部分来启动和关闭进程:当然,用户也 ...

  8. hdu_2110_Crisis of HDU(母函数)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2110 题意:给你N个价值和数目,求方案数,很裸的母函数. #include<cstdio> ...

  9. mvc UrlHelper

    何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组. 其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方法,那为什么要有Helper呢? 其实无非是将界面与逻 ...

  10. LeetCode OJ 222. Count Complete Tree Nodes

    Total Accepted: 32628 Total Submissions: 129569 Difficulty: Medium Given a complete binary tree, cou ...