利用二叉树结构以及遍历方式可以实现基于二叉树的元素排序处理。
首先根据插入元素的大小与根节点大小的比较来构建一颗完整的树。
在构建好二叉树之后,并没有继续排序,所以我们需要使用一个中序遍历,因为中序遍历的顺序是左-根-右
5-8-9-11-12-20,神奇吧,我也觉得是!至于为什么呢?数学原理回头再说吧!
public class BinaryTreeSort{ class Node { private E item; //存放元素 private Node left; // 存放左子树地址 private Node right; //存放右子树地址 //添加构造方法 Node(E item){ this.item =item; } public void addNode(Node node) { //完成新结点中的元素与当前结点中的元素判断 //如果新结点中的元素小于当前节点中的元素,那么新结点则放到当前结点的左子树中 if(node.item.intValue() node = new Node<>(element); //判断当前二叉树中是否有根节点,如果没有,那么新节点则为根节点 if(this.root == null) { this.root = node; }else { this.root.addNode(node); } } public void sort() { //判断根节点是否为空 if(this.root == null) { return; }else { this.root.inorderTraversal(); } } public static void main(String[] args) { BinaryTreeSort tree = new BinaryTreeSort<>(); //1,8,6,3,5,2 tree.add(1); tree.add(8); tree.add(6); tree.add(3); tree.add(5); tree.add(2); tree.sort(); } }



