数据结构之二叉树实现排序功能

二叉树实现排序

树是一种非线性数据结构,直接观看,它是数据元素(在树种称为结点)按分支关系组织起来的结构,二叉树(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->
posted @   JamieChyi  阅读(19)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
点击右上角即可分享
微信分享提示