使用Java怎么实现树的同构
发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,这篇文章主要介绍使用Java怎么实现树的同构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!给定两棵树r1、r2,如果r1可以通过若干次的左子树和右子树互换,使之与r2完全相同,
千家信息网最后更新 2024年12月01日使用Java怎么实现树的同构
这篇文章主要介绍使用Java怎么实现树的同构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
给定两棵树r1、r2,如果r1可以通过若干次的左子树和右子树互换,使之与r2完全相同,这说明两者同构。
举例
树的构造
树可以由数组或链表来构造:举例:上图左上角的树通过数组可表示为
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | G | - | - | - | F | - | H | - |
该方式浪费了部分空间,但适合表示完全二叉树
链表方式则比较直观
除上述两种方式外,还可以采用"类数组"的方式
public static class Node{String data;int left;int right;}
举例:上图左上角的树可表示为
数组索引 | data | left | right |
---|---|---|---|
0 | A | 1 | 2 |
1 | B | 3 | 4 |
2 | C | 6 | - |
3 | D | - | - |
4 | E | 5 | - |
5 | F | - | - |
6 | G | 7 | - |
7 | H | - | - |
本文的树结构使用了第三种方式
终端输入:
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怎么实现树的同构"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
子树
节点
孩子
方式
数组
不同
相同
上图
两个
内容
左上角
篇文章
结构
直观
价值
兴趣
可以通过
小伙
小伙伴
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法怎么处罚
软件开发岗工资待遇
济南 公安局 网络安全 招聘
智能驾驶座舱汽车软件开发工程师
苏州crm软件开发服务费
微擎密码在数据库怎么改
邮政软件开发中心面试多久
火影服务器怎么查看等级
数据库查询一个字段中的值来源
数据库中怎样设计主键
网络安全审查办法意义
数据库技术代表人物
驾校软件开发
高校信息教育素养教育数据库
网络技术员待遇
软件开发北大青鸟怎么样
c 获得数据库中数据
移动网络安全龙头智游网安
西宁直播软件开发价格
终端软件开发大学学什么专业
完整的数据库有什么好处
四川省教育技术装备数据库
广西华为云服务器在哪里
软件开发承诺书简版
金华比奇网络技术怎么样
网络安全探针配置
web外文数据库
国外服务器免费测试
题库查询软件开发
云和传统服务器耗电