算法导论上二叉查找树的实现java(三)

2014-11-23 23:38:02 · 作者: · 浏览: 2
.parent = parentNode; } return; } // 该节点的左右孩子均非为空 TreeNode tmpNode = treeSuccessor(node); node.key = tmpNode.key; delete(tmpNode); } public TreeNode getRoot() {// 获取根节点 return root; } public String printTree() { // 打印出此二叉查找树 List ll = inOrderTree(); Iterator it = ll.iterator(); StringBuilder sb = new StringBuilder(); while (it.hasNext()) { TreeNode p = (TreeNode) it.next(); sb.append(p.key + " "); } return sb.toString(); } public static void main(String[] args) { BinarySearchTree bst = new BinarySearchTree(); System.out.println("此二叉查找树是否为空:" + bst.isEmpty()); int[] keys = new int[] { 15, 6, 18, 3, 7, 13, 20, 2, 9, 4 }; for (int key : keys) bst.treeInsert(key); System.out.println("此二叉查找树是否为空:" + bst.isEmpty()); System.out.println("此二叉查找树中最小元素为:" + bst.treeMinNode(bst.getRoot()).getKey()); System.out.println("此二叉查找树中最大元素为:" + bst.treeMaxNode(bst.getRoot()).getKey()); System.out.println("此二叉查找树根节点元素为:" + bst.getRoot().getKey()); System.out.println("此二叉查找树为:" + bst.printTree()); System.out.println("查找9是否在二叉查找树中:" + ((bst.treeSearch(9) != null) "在" : "不在")); bst.treeDelete(9); System.out.println("查找9是否在二叉查找树中:" + ((bst.treeSearch(9) != null) "在" : "不在")); System.out.println("此二叉查找树为:" + bst.printTree()); System.out.println("查找13是否在二叉查找树中:" + ((bst.treeSearch(13) != null) "在" : "不在")); } }
下面是运行截图: