千家信息网

使用Java怎么实现树的同构

发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,这篇文章主要介绍使用Java怎么实现树的同构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!给定两棵树r1、r2,如果r1可以通过若干次的左子树和右子树互换,使之与r2完全相同,
千家信息网最后更新 2024年12月01日使用Java怎么实现树的同构

这篇文章主要介绍使用Java怎么实现树的同构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

给定两棵树r1、r2,如果r1可以通过若干次的左子树和右子树互换,使之与r2完全相同,这说明两者同构。

举例


树的构造

树可以由数组或链表来构造:举例:上图左上角的树通过数组可表示为

0123456789101112
ABCDEG---F-H-

该方式浪费了部分空间,但适合表示完全二叉树

链表方式则比较直观

除上述两种方式外,还可以采用"类数组"的方式

public static class Node{String data;int left;int right;}

举例:上图左上角的树可表示为

数组索引dataleftright
0A12
1B34
2C6-
3D--
4E5-
5F--
6G7-
7H--

本文的树结构使用了第三种方式

终端输入:

A,1,2B,3,-C,-,-D,-,-A,2,1B,3,-C,-,-D,-,-
public class TongGou {private Scanner scanner;public TongGou(){scanner = new Scanner(System.in);}//树结构public static class Node{String data;int left;int right;}/*** 创建树* @param nodes* @return*/public int createTree(Node[] nodes){int N = nodes.length;int root = -1;int[] check = new int[N];Arrays.fill(check,0);  //初始化为0for (int i=0;i0) {check[left] = 1;}if(right>0){check[right] = 1;}}}for(int i=0;i

以上是"使用Java怎么实现树的同构"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0