二叉树的Java实现及特点总结(二)

2015-02-02 14:28:32 · 作者: · 浏览: 16
遍历
? *
? * @param treeNode
? */
?public void inOrder(TreeNode treeNode) {
? if (treeNode != null && treeNode.isDelete() == false) {
? ?inOrder(treeNode.getLefTreeNode());
? ?System.out.println("--" + treeNode.getValue());
? ?inOrder(treeNode.getRightNode());
? }
?}


}


在上面对二叉树的遍历操作中,使用的是中序遍历,这样遍历出来的数据是增序的。


下面是测试代码:


public class Main {


?public static void main(String[] args) {


? BinaryTree tree = new BinaryTree();
? // 添加数据测试
? tree.insert(10);
? tree.insert(40);
? tree.insert(20);
? tree.insert(3);
? tree.insert(49);
? tree.insert(13);
? tree.insert(123);


? System.out.println("root=" + tree.getRoot().getValue());
? // 排序测试
? tree.inOrder(tree.getRoot());
? // 查找测试
? if (tree.find(10) != null) {
? ?System.out.println("找到了");
? } else {
? ?System.out.println("没找到");
? }
? // 删除测试
? tree.find(40).setDelete(true);


? if (tree.find(40) != null) {
? ?System.out.println("找到了");
? } else {
? ?System.out.println("没找到");
? }


?}


}