java: Comparable比较器,定义二叉操作类
JAVA 操作 比较 定义 二叉 Comparable
2023-09-14 08:57:51 时间
//定义二叉操作类 class BinaryTree{ class Node{ private Node left; //左指数 private Node right; //右指数 private Comparable data; public Node(Comparable<?> data) { this.data = data; } //二叉数据比较,大的放在右边,小的放在左边 public void addNode(Node newNode) { //放在左边 if( newNode.data.compareTo(this.data) <= 0 ) { if(this.left==null) { this.left = newNode; }else{ this.left.addNode(newNode); //向下继续判断,指针指向下一个 } } System.out.println("this.data="+this.data); System.out.println("newNode.data="+newNode.data); System.out.println("----------------->"); //放在右边 if(newNode.data.compareTo(this.data) > 0) { if(this.right ==null) { this.right = newNode; }else{ this.right.addNode(newNode); //向下继续判断,指针指向下一个 } } } //中序打印数据 public void printNode() { if(this.left != null) //存在左指数 { this.left.printNode(); //继续查找下面的左指数 } System.out.println(this.data); if(this.right != null) //存在右指数 { this.right.printNode(); //继续查找下面的右指数,指针指向下一个 } } } private Node root; public void add(Comparable data) //接受数据 { Node newNode = new Node(data); if(this.root == null) { this.root = newNode; //设为根节点 }else{ this.root.addNode(newNode); } } public void print() { //输出全部的根节点数据 this.root.printNode(); } } public class comparaDemo3 { public static void main(String args[]) { BinaryTree bt = new BinaryTree(); bt.add(3); bt.add(4); bt.add(8); bt.add(1); bt.add(6); bt.add(3); bt.add(18); bt.print(); } }
一般不推荐此方法,直接推荐,implements Comparable,实现ComparaTo()方法
相关文章
- Java 各种时间日期相关的操作
- JAVA对象和XML文件绑定
- Java实现 LeetCode 257 二叉树的所有路径
- java实现蓝桥杯约瑟夫环
- java实现第九届蓝桥杯全排列
- Java实现提取拼音首字母
- Java实现行列递增矩阵的查找
- JAVA 的IO操作实例
- 【JAVA】环境变量的配置
- java操作k8s api示例:通过java完成对kubenetes原生资源对象(pod、node、namespace、servcie、deployment)和自定义资源对象CRD的增删改查或事件监听
- 使用Java操作汉字编码的一个例子
- java调用com组件将office文件转换成pdf (同发csdn)
- Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数1 7. //按性别获取用户名称1 16. //按性别求年龄的总和1 2
- Atitit 文件存储标准化api 总结 目录 1. 操作系统,进行操作1 1.1. FileUtils类的应用1 1.2. 各大api 比较2 2. Java。Io用apache的commo
- paip.文件目录操作uAPI php python java对照
- java 操作redis
- 华为OD机试 - 新员工座位(Java & JS & Python)
- Java桥接模式:打破继承束缚,优雅实现多维度变化
- java 程序运行的基础知识【Java bytecode】
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- 二叉树3种递归和非递归遍历(Java)
- [Sqlite]-->Java采用jdbc联系Sqlite各种特定的工艺数据库的数据操作
- java===java基础学习(4)---字符串操作
- 【java】Java 继承
- 【Java并发编程系列】全方位理解多线程几乎包含线程的所有操作哦
- JAVA开发讲义(二)-Java程序设计之数据之谜三