本周在上周学习了二叉树的基础上,学习了一种二叉树的特殊形式——二叉查找树,又叫有序二叉树、排序二叉树。本章学习了两种二叉查找树的实现方法,以及两种二叉查找树的应用。html
addElement
:向树中添加一个元素removeElement
:从树中删除一个元素removeAllOccurrences
:从树中删除所指定元素的任何存在removeMin
:删除树中的最小元素removeMax
:删除树中的最大元素findMin
:返回树中的最小元素的引用findMax
:返回树中的最大元素引用public void find(T element) { T result = null; BinaryTreeNode node = root; while (node != null) { if (element.CompareTo(node.getElement) > 0) { node = node.right; } else if (element.CompareTo(node.getElement) < 0) { node = node.left; } else { result = node.getElement; break; } } return result; }
public void find(T element) { return find(root, element); } private void find(BinaryTreeNode root, T element) { if (root == null) { return element; } int comparable = element.CompareTo(root.getElement); if (comparable > 0){ find(root.right,element); } else if (comparable < 0){ find(root.left,element); } else { return root.getElement; } }
null
,插入结点将会成为新的左孩子。null
,则会继续对左子树进行遍历,遍历的同时进行比较操做。null
,插入结点将会成为新的右孩子。null
,则会继续对右子树进行遍历,遍历的同时进行比较操做。null
便可。root
或父结点与之链接的指针设置为空便可。root
指针指向被删除结点的单支(左子树或右子树)LinkedBinaryTree
里面的getHeight
方法中,可是我很是不理解为何抛出的会是NullPointerException
。因而去查了一下会抛出NullPointerException
异常的缘由有哪些,通常有三种:字符串变量未初始化;接口类型的对象没有用具体的类初始化;当一个对象的值为空时,没有判断为空。getHeight
的代码,但背部疼痛诊断器是一颗满树,若是当我创建的树不是一颗满树时,在gerHeight
调用getLeft
或者getRight
的时候,必定会出现指针为空的状况,而后就会抛出异常,因此我就将gerHeight
的方法改回来了。public int getHeight() { // if (root == null){ // return 0; // } // int leftChildHeight = getLeft().getHeight(); // int rightChildHeght = getRight().getHeight(); // // return Math.max(leftChildHeight,rightChildHeght) + 1; int result = height(root); return result; }
ExpreesionTree
中的PrintTree
方法能够直接用做LinkedBinaryTree
中的toString
方法我就直接复制粘贴过来了,可是没有改变相应的类型,在把全部的ExpreesionTreeOp类型改为Integer类型后,程序就能完美地输出树了。上周考试无错题。java
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/10 | |
第二周 | 246/366 | 2/3 | 20/30 | |
第三周 | 567/903 | 1/4 | 10/40 | |
第四周 | 2346/3294 | 2/6 | 20/60 | |
第五周 | 1343/4637 | 2/8 | 30/90 | |
第六周 | 1343/4637 | 2/8 | 20/110 | |
第七周 | 654/5291 | 1/9 | 25/135 |