数据结构之二叉树实现排序功能
二叉树实现排序
树是一种非线性数据结构,直接观看,它是数据元素(在树种称为结点)按分支关系组织起来的结构,二叉树(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->
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体