数据结构之二叉树实现排序功能
二叉树实现排序
树是一种非线性数据结构,直接观看,它是数据元素(在树种称为结点)按分支关系组织起来的结构,二叉树(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->
数据结构之二叉树实现排序功能相关推荐
- 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)
常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...
- java数据结构15_二叉树和红黑二叉树
l 二叉树的定义 二叉树是树形结构的一个重要类型. 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重 ...
- 【关于封装的那些事】 缺失封装 【关于封装的那些事】 泄露的封装 【关于封装的那些事】 不充分的封装 【图解数据结构】二叉查找树 【图解数据结构】 二叉树遍历...
[关于封装的那些事] 缺失封装 目录 - 缺失封装 为什么不能缺失封装? 缺失封装潜在的原因 未意识到关注点会不断变化 混合关注点 幼稚的设计决策 示例分析一 示例分析二 总结 缺失封装 没有将实现变 ...
- python sort 多级排序_Python使用sort和class实现的多级排序功能示例
本文实例讲述了Python使用sort和class实现的多级排序功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import random class Temp: ...
- python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...
python环境下使用mysql数据及数据结构和二叉树算法(图): 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cu ...
- 数据结构与算法(三) 排序算法(代码示例)
数据结构与算法三 排序算法 1. 选择排序 2. 插入排序 3. 冒泡排序 4. 归并排序 5. 快速排序 6. 希尔排序 7. 堆排序 总结 1. 选择排序 选择排序的基本原理: 对于未排序的一组记 ...
- 数据结构与算法之排序算法
数据结构与算法之排序算法 排序算法的介绍 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排序的过程. 排序的分类 1)内部排序:指将需要处理的数据都加载到内部 ...
- 大一新生必看,自学必看,里昂详解数据结构之二叉树
数据结构之二叉树 有幸掌握浅薄知识,不吝分享,保持独立思考,自主学习,共同进步.另求关注,点赞,评论,感谢!(tips:主页有数据结构全部知识点,以及知识点讲解,建立完善的数据结构知识体) 核心算法思 ...
- python实现mysql二叉树_python环境下使用mysql数据及数据结构和二叉树算法(图)...
python环境下使用mysql数据及数据结构和二叉树算法(图): 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cu ...
- C语言:利用排序二叉树进行排序
C语言:利用排序二叉树进行排序 标签: C语言 二叉树 排序 by 小威威 1.引入 排序二叉树属于二叉树的一种,其主要特色在于构建二叉树与输出二叉树.二叉树的子树很有特点:左子树小于根结点,根结点小 ...
最新文章
- 计算机系统验证课件,回顾性验证及再验证简介(ppt 42页)
- 开发者社区精选直播合集一览
- 调试opencv程序显示应用程序无法正常启动,0xc000007b
- linux platform 驱动模型分析
- Linux无root权限安装cuda9.1和cudnn7.05以及编译框架时无lcuda.so的问题
- 首次曝光!支付宝支付加密规则梳理,写的太好了!
- 中职学计算机专业考本科难吗,国际本科难不难(中职考本科难不难)
- ccpc网络预选赛总结
- css3制作翘边阴影
- 视觉SLAM小知识——叉乘的物理意义
- SSH端口转发(ssh隧道)
- Package name does not correspond to the file path (IntelliJ IDEA)
- 对称数(自己的算法)
- 角度,弧度,三角函数
- 2023湖北师范大学计算机考研信息汇总
- 任务一:基于控制台的购书系统 java实验报告
- linux 常用命明
- doraemon的python js入门必了解之一
- 3.Appium+AndroidStudio环境搭建
- 3dmax建模模式下的选择--循环选择
热门文章
- (三)JavaScript之[事件]与[字符串]
- 数据结构 KMP 算法实现
- 从哪查找当前程序所有可用的环境变量?
- 在本地Windows系统下搭建Apollo配置中心
- jsp三大指令(总结)
- spring事务失效二:业务代码捕获异常
- Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
- python中 os._exit() 和 sys.exit(), exit(0)的用法和区别
- 中国工业机器人市场正在迎来爆发式增长
- POJ-3267 The Cow Lexicon---删除字符匹配单词