package com.sx.structures; public class BinaryTree { private BinaryNode root; public BinaryTree(Object o) { root = new BinaryNode(o); } public void insert(Object o) { BinaryNode node = new BinaryNode(o); insert(root, node); } private void insert(BinaryNode root, BinaryNode node) { if (node.compareTo(root) > 0) { if (root.getRight() == null) { root.setRight(node); return; } insert(root.getRight(), node); } else { if (root.getLeft() == null) { root.setLeft(node); return; } insert(root.getLeft(), node); } } public void preOrder(BinaryNode root){ order(root); if(root.getLeft()!=null) preOrder(root.getLeft()); if(root.getRight()!=null) preOrder(root.getRight()); } public void postOrder(BinaryNode root){ if(root.getLeft()!=null) postOrder(root.getLeft()); if(root.getRight()!=null) postOrder(root.getRight()); order(root); } public void inOrder(BinaryNode root){ if(root.getLeft()!=null) inOrder(root.getLeft()); order(root); if(root.getRight()!=null) inOrder(root.getRight()); } /** * 未实现 * @param root * @param node * @return */ private boolean remove(BinaryNode root, BinaryNode node){ return false; } public BinaryNode getRoot(){ return root; } private void order(BinaryNode root){ System.out.print(root.getData()+" "); } }