二叉树算法的排序规则:

1、选择第一个元素作为根节点

2、之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在左子树

3、最后按照中序遍历的方式进行输出,则可以得到排序的结果(左->根->右)

二叉树算法的核心类,此类只提供了添加和打印输出的方法

package com.lym.binaryTree;/*** 二叉树算法的排序规则: * 1、选择第一个元素作为根节点 * 2、之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在左子树* 3、最后按照中序遍历的方式进行输出,则可以得到排序的结果(左->根->右)* * @author Administrator* */
public class BinaryTree {private Node root;// 根节点// 添加节点,提供外部访问public void add(int data) {if (root == null) {root = new Node(data);} else {root.addNode(data);}}// 输出节点,提供外部访问public void print() {if (root != null) {root.printNode();}}// 树枝节点class Node {private Node leftNode;private Node rightNode;private int data;public Node(int data) {this.data = data;}// 添加节点public void addNode(int data) {if (this.data > data) {// 添加在左面if (this.leftNode == null) {this.leftNode = new Node(data);} else {this.leftNode.addNode(data);}} else if (this.data <= data) {if (this.rightNode == null) {this.rightNode = new Node(data);} else {this.rightNode.addNode(data);}}}// 输出所有节点//中序遍历public void printNode() {if (this.leftNode != null) {this.leftNode.printNode();}System.out.print(this.data + " ");//输出语句放最后就是后续遍历if (this.rightNode != null) {this.rightNode.printNode();}}}
}

二叉树的测试类

package com.lym.binaryTree;
/*** 二叉树测试类* * @author Administrator**/
public class BinaryTreeDemo {public static void main(String[] args) {BinaryTree bt = new BinaryTree();bt.add(3);bt.add(5);bt.add(2);bt.add(1);bt.add(4);bt.add(8);bt.add(10);bt.add(13);bt.add(6);bt.add(9);bt.print();}}

转载于:https://www.cnblogs.com/liuyanmin/p/5146533.html

Java-二叉树算法相关推荐

  1. java二叉树算法_java构建二叉树算法

    展开全部 //********************************************************************************************* ...

  2. java二叉树算法_JAVA 二叉树算法 (遍历、深度、汇总求和)

    二叉树构造类: public class BinaryTree { int data; // 根节点数据 BinaryTree left; // 左子树 BinaryTree right; // 右子 ...

  3. 数据结构 - 二叉树 - 面试中常见的二叉树算法题

    数据结构 - 二叉树 - 面试中常见的二叉树算法题 数据结构是面试中必定考查的知识点,面试者需要掌握几种经典的数据结构:线性表(数组.链表).栈与队列.树(二叉树.二叉查找树.平衡二叉树.红黑树).图 ...

  4. Java十大排序算法总结,Java排序算法总结之冒泡排序

    本文实例讲述了Java排序算法总结之冒泡排序.分享给大家供大家参考.具体分析如下: 前言:冒泡排序(BubbleSort)就是依次比较相邻的两个数,将小数放在前面,大数放在后面. 下面让我们一起    ...

  5. java 线性回归算法_线性搜索或顺序搜索算法在Java中如何工作? 示例教程

    java 线性回归算法 大家好,之前,我讨论了二进制搜索算法的工作原理,并分享了在Java中实现二进制搜索的代码. 在那篇文章中,有人问我是否还有其他搜索算法? 如果数组中的元素未排序,又该如何使用它 ...

  6. Java刷算法:收藏大法

    Java刷算法怎么刷:持续更新中 算法技巧 算法一轮复习 Java API复习 输入与输出 java.io.* java.util.* 数组 **判断二维数组是否为空** **数组拷贝** **字符数 ...

  7. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  8. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  9. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  10. java经典算法四十题

    java经典算法四十题 [程序9]题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程找出1000以内的所有完数. public class W ...

最新文章

  1. 神经网络基础知识总结
  2. MyEclipse数据库连接配置(以Oracle为例)
  3. fatal error C1083: 无法打开包括文件:“stdio.h
  4. 需求分析师与产品经理的区别
  5. 小爱同学100个奇葩回复_小米小爱音箱Pro开箱评测,看到的不仅是全面升级更是小米loT的高速发展...
  6. 浅谈 Kubernetes 服务发现
  7. 新手学java还是python知乎_编程初学者应该先学C++、Java还是Python?
  8. CAD答辩周 -- 与自己相关的几场
  9. 老李说事:性能测试服务日记
  10. Java 8 Optional 类 学习
  11. pcb天线设计和hfss仿真分析实例_5G天线与多天线系统设计
  12. 重写系统黑色的TabBar
  13. 【C++】STL-函数对象(仿函数)
  14. Windows 7语言包下载
  15. U盘做成Mac启动盘之后怎么恢复成原来的U盘(U盘变成efi怎么恢复)
  16. 微信小程序开发(创建项目介绍)
  17. 策略学习(Policy-Based Reinforcement Learning)
  18. *4-1 CCF 2014-12-1门禁系统
  19. G - Ania and Minimizing(模拟)
  20. 为什么采用实时操作系统?

热门文章

  1. 综合评价模型的缺点_视频/图像质量评价综述(一)
  2. 10 万开发者都知道的部署方式,你居然不知道!?(内含悬赏活动)
  3. 从零开始入门 K8s | 深入剖析 Linux 容器
  4. html表单没有csrf保护,如何在Symfony 1.4中为表单禁用CSRF保护/验证
  5. 路由器无法访问目标网络_初设路由器,无法访问管理页面的解决办法_网络设备技术应用...
  6. mysql导出linux,linux下mysql导出导入方法
  7. CSDN ARIMA R语言_R语言实现Fleiss#39; Kappa系数处理多个观察者一致性检验
  8. qemu交叉编译arm内核_arm qemu (1) 内核启动调试环境搭建
  9. c打开指定路径文件_C++ 读取指定路径下所有的文件 (C++ get the list of files in a directory)...
  10. MFC:ListControl数据修改