二叉树实现排序

树是一种非线性数据结构,直接观看,它是数据元素(在树种称为结点)按分支关系组织起来的结构,二叉树(Binart Tree)是每个节点最多有两个子树的有序树。通常子树被称做为“左子树”和“右子树”

二叉树算法的排序规则:

1.选择第一个元素作为跟节点

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

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

代码实现:

基于内部类+递归

public class Test1 {public static void main(String[] args) {BinaryNode node = new BinaryNode();node.add(8);node.add(3);node.add(10);node.add(1);node.add(6);node.add(14);node.add(13);node.print();}
}class BinaryNode {private Node node;// 开始节点// 添加节点public void add(int date) {if (node == null) {node = new Node(date);} else {node.add(date);}}// 打印节点public void print() {if (node != null) {node.print();}}private static class Node {private final int date;private Node left;private Node right;public Node(int date) {this.date = date;}// 添加节点public void add(int date) {if (date > this.date) {if (this.right == null) {this.right = new Node(date);} else {this.right.add(date);}} else {if (this.left == null) {this.left = new Node(date);} else {this.left.add(date);}}}// 打印节点public void print() {if (this.left != null) {this.left.print();}System.out.print(this.date + "->");if (this.right != null) {this.right.print();}}}
}

运行结果:

1->3->6->8->10->13->14->

数据结构之二叉树实现排序功能相关推荐

  1. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  2. java数据结构15_二叉树和红黑二叉树

    l 二叉树的定义 二叉树是树形结构的一个重要类型. 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重 ...

  3. 【关于封装的那些事】 缺失封装 【关于封装的那些事】 泄露的封装 【关于封装的那些事】 不充分的封装 【图解数据结构】二叉查找树 【图解数据结构】 二叉树遍历...

    [关于封装的那些事] 缺失封装 目录 - 缺失封装 为什么不能缺失封装? 缺失封装潜在的原因 未意识到关注点会不断变化 混合关注点 幼稚的设计决策 示例分析一 示例分析二 总结 缺失封装 没有将实现变 ...

  4. python sort 多级排序_Python使用sort和class实现的多级排序功能示例

    本文实例讲述了Python使用sort和class实现的多级排序功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import random class Temp: ...

  5. python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...

    python环境下使用mysql数据及数据结构和二叉树算法(图): 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cu ...

  6. 数据结构与算法(三) 排序算法(代码示例)

    数据结构与算法三 排序算法 1. 选择排序 2. 插入排序 3. 冒泡排序 4. 归并排序 5. 快速排序 6. 希尔排序 7. 堆排序 总结 1. 选择排序 选择排序的基本原理: 对于未排序的一组记 ...

  7. 数据结构与算法之排序算法

    数据结构与算法之排序算法 排序算法的介绍 ​ 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排序的过程. 排序的分类 1)内部排序:指将需要处理的数据都加载到内部 ...

  8. 大一新生必看,自学必看,里昂详解数据结构之二叉树

    数据结构之二叉树 有幸掌握浅薄知识,不吝分享,保持独立思考,自主学习,共同进步.另求关注,点赞,评论,感谢!(tips:主页有数据结构全部知识点,以及知识点讲解,建立完善的数据结构知识体) 核心算法思 ...

  9. python实现mysql二叉树_python环境下使用mysql数据及数据结构和二叉树算法(图)...

    python环境下使用mysql数据及数据结构和二叉树算法(图): 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cu ...

  10. C语言:利用排序二叉树进行排序

    C语言:利用排序二叉树进行排序 标签: C语言 二叉树 排序 by 小威威 1.引入 排序二叉树属于二叉树的一种,其主要特色在于构建二叉树与输出二叉树.二叉树的子树很有特点:左子树小于根结点,根结点小 ...

最新文章

  1. 计算机系统验证课件,回顾性验证及再验证简介(ppt 42页)
  2. 开发者社区精选直播合集一览
  3. 调试opencv程序显示应用程序无法正常启动,0xc000007b
  4. linux platform 驱动模型分析
  5. Linux无root权限安装cuda9.1和cudnn7.05以及编译框架时无lcuda.so的问题
  6. 首次曝光!支付宝支付加密规则梳理,写的太好了!
  7. 中职学计算机专业考本科难吗,国际本科难不难(中职考本科难不难)
  8. ccpc网络预选赛总结
  9. css3制作翘边阴影
  10. 视觉SLAM小知识——叉乘的物理意义
  11. SSH端口转发(ssh隧道)
  12. Package name does not correspond to the file path (IntelliJ IDEA)
  13. 对称数(自己的算法)
  14. 角度,弧度,三角函数
  15. 2023湖北师范大学计算机考研信息汇总
  16. 任务一:基于控制台的购书系统 java实验报告
  17. linux 常用命明
  18. doraemon的python js入门必了解之一
  19. 3.Appium+AndroidStudio环境搭建
  20. 3dmax建模模式下的选择--循环选择

热门文章

  1. (三)JavaScript之[事件]与[字符串]
  2. 数据结构 KMP 算法实现
  3. 从哪查找当前程序所有可用的环境变量?
  4. 在本地Windows系统下搭建Apollo配置中心
  5. jsp三大指令(总结)
  6. spring事务失效二:业务代码捕获异常
  7. Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
  8. python中 os._exit() 和 sys.exit(), exit(0)的用法和区别
  9. 中国工业机器人市场正在迎来爆发式增长
  10. POJ-3267 The Cow Lexicon---删除字符匹配单词