遍历
? *
? * @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("没找到");
? }
?}
}