二叉树 --- Java实现

来源:互联网 发布:js给div设置id 编辑:程序博客网 时间:2024/06/04 18:13

一、概述

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

二、二叉树算法的排序规则

1、选择第一个元素作为根节点
2、之后选择大于根节点的放在右子树,如果元素小于根节点,则放在左子树
3、最后按照 中序遍历 的方式进行输出,则可以得到排序的结果(左、根、右)

8、3、10、1、6、14、4、7、13


三、代码示例

public class BinaryTreeDemo {public static void main(String[] args) {BinaryTree bt = new BinaryTree();bt.addNode(8);bt.addNode(3);bt.addNode(10);bt.addNode(1);bt.addNode(6);bt.addNode(14);bt.addNode(4);bt.addNode(7);bt.addNode(13);bt.printNode();}}

public class BinaryTree {private Node root;public void addNode(int data){if(root == null){root = new Node(data);}else{root.add(data);;}}public void printNode(){if(root!=null){root.print();}}private class Node{private int data;private Node left;private Node right;public Node(int data){this.data = data;}public void add(int data){if(this.data > data){if(this.left == null){this.left = new Node(data);}else{this.left.add(data);}}else if(this.data<=data){if(this.right==null){this.right = new Node(data);}else{this.right.add(data);}}}//中序遍历:左  根  右public void print(){if(this.left!=null){this.left.print();}System.out.print(this.data+"->");if(this.right!=null){this.right.print();}}}}



0 0