摘要: 多设置了一个ans变量,每次找到一个等于val的值,我就用它的序号覆盖ans,这样,由于我们的寻找方向是正确的,因此最后ans记录的序号,肯定就是我们需要的答案,同时,如果不存在,则ans已经初始为-1,因此,最后直接返回ans即可。看下面5个例子。第一,求任意一个i使得num[i]等于val,不存在返回-1;View Code int BinarySearch(int low, int high, int val){ int ans = -1; while(low <= high){ int mid = (low + high) / 2; if... 阅读全文
posted @ 2012-03-27 22:33 爱也玲珑 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 二叉查找树是满足以下条件的二叉树:1.左子树上的所有节点值均小于根节点值,2右子树上的所有节点值均不小于根节点值,3,左右子树也满足上述两个条件。 二叉查找树的插入过程如下:1.若当前的二叉查找树为空,则插入的元素为根节点,2.若插入的元素值小于根节点值,则将元素插入到左子树中,3.若插入的元素值不小于根节点值,则将元素插入到右子树中。 二叉查找树的删除,分三种情况进行处理: 1.p为叶子节点,直接删除该节点,再修改其父节点的指针(注意分是根节点和不是根节点),如图a。 2.p为单支节点(即只有左子树或右子树)。让p的子树与p的父亲节点相连,删除p即可;(注意分是根节点和不是根节点... 阅读全文
posted @ 2012-03-27 18:00 爱也玲珑 阅读(40436) 评论(5) 推荐(4) 编辑