当前位置:   article > 正文

PTA 树的遍历 java_java pta 树的遍历

java pta 树的遍历

PTA 树的遍历题目https://pintia.cn/problem-sets/1120858298571182080/problems/1120858728923549696

参考博客:https://blog.csdn.net/wenbo201/article/details/76572981

思路:

核心是建树过程
每一次先由后序序列找到根节点的大小,每一次递归函数传入的后序序列的最后一个数,就是这次的根节点的大小
然后找出这个数在中序序列中的位置;
然后递归建立左右子树

  1. package pat树;
  2. //ac
  3. //参考博客
  4. //https://blog.csdn.net/wenbo201/article/details/76572981
  5. import java.util.LinkedList;
  6. import java.util.Queue;
  7. import java.util.Scanner;
  8. public class Main56树的遍历 {
  9. static int n;
  10. static int []po;
  11. static int []id;
  12. static Queue<node>q=new LinkedList<node>();
  13. //核心是建树过程
  14. //每一次先由后序序列找到根节点的大小,每一次递归函数传入的后序序列的最后一个数,就是这次的根节点的大小
  15. //然后找出这个数在中序序列中的位置;
  16. //然后递归建立左右子树
  17. public static node build(int pl,int pr,int il,int ir) {
  18. if(il>ir)return null;
  19. node root=new node();
  20. //每一次先由后序序列找到根节点的大小,每一次递归函数传入的后序序列的最后一个数,就是这次的根节点的大小
  21. int v=po[pr];
  22. root.v=v;
  23. int i;
  24. //然后找出这个数在中序序列中的位置;
  25. for(i=il;i<=ir;i++)if(id[i]==v)break;
  26. int num=i-il;
  27. //然后递归建立左右子树
  28. root.le=build(pl,pl+num-1,il,i-1);
  29. root.ri=build(pl+num,pr-1,i+1,ir);
  30. return root;
  31. }
  32. public static void print() {
  33. int t=1;
  34. while(!q.isEmpty()) {
  35. node r=q.poll();
  36. if(t==n)System.out.println(r.v);
  37. else {
  38. System.out.print(r.v+" ");
  39. t++;
  40. }
  41. if(r.le!=null)q.add(r.le);
  42. if(r.ri!=null)q.add(r.ri);
  43. }
  44. }
  45. public static void main(String[] args) {
  46. Scanner in=new Scanner(System.in);
  47. n=in.nextInt();
  48. po=new int[n+1];
  49. id=new int[n+1];
  50. for(int i=1;i<=n;i++)po[i]=in.nextInt();
  51. for(int i=1;i<=n;i++)id[i]=in.nextInt();
  52. node root=build(1,n,1,n);
  53. q.add(root);
  54. print();
  55. }
  56. }
  57. class node{
  58. int v;
  59. node le;
  60. node ri;
  61. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/663571
推荐阅读
相关标签
  

闽ICP备14008679号