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

if (currentNode.getValue() > key) {
     currentNode = currentNode.getLefTreeNode();
    } else {
     currentNode = currentNode.getRightNode();
    }

if (currentNode == null) {
     return null;
    }

}

if (currentNode.isDelete()) {
    return null;
   } else {
    return currentNode;
   }

} else {
   return null;
  }

}

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

}

}

二叉树的常见问题及其解决程序

【递归】二叉树的先序建立及遍历

在JAVA中实现的二叉树结构

【非递归】二叉树的建立及遍历

二叉树递归实现与二重指针

二叉树先序中序非递归算法

轻松搞定面试中的二叉树题目

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d81bc0ad15d4eb6c1da32bc81e0c5fe8.html