- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 求二叉树的任意两个节点A,B的最邻近的公共父节点
求二叉树的任意两个节点A,B的最近的公共父节点。比如下图中,13和18的最近公共父节点是16,13和8的最近公共父节点是10,13和11的最近公共父节点是12.如何求最近公共父节点呢?情况 1 如果树的节点有parent指针,分别求出节点A到root节点的链表和节点B到root节点的链表。找到这两条链表的公共部分之后,就知道了节点A和节点B的最近的公共父节点。所以,如果有par
2013-09-30 22:27:34 3427
原创 排序二叉树BST的基本操作(2)前驱,后继,删除
前文中写了基本操作中的插入,查找,最大节点,最小节点。本文主要写如何进行删除。删除的最重要的原则是,删除后依然要维护BST的性质,也就是说,中序遍历后为升序。 删除的思路有三个。 思路一先理解前驱和后继的含义。节点key的前驱,就是中序遍历时,比key小的所有节点中最大的那个节点。节点key的后继,就是中序遍历时,比key小的所有节点中最大的那个节点。容易看出,节点
2013-09-29 18:29:58 5761
原创 排序二叉树BST的基本操作(1)插入,查找,最大,最小
排序二叉树的基本操作(1)插入,查找,最大,最小排序二叉树(BST, Binary Search Tree)具有这样的性质。对于二叉树中的任意节点,如果它有左子树或右子树,则该节点的数据成员大于左子树所有节点的数据成员,且小于右子树所有节点的数据成员。排序二叉树的中序遍历结果是从小到大排列的。基本操作包括,插入,查找,前驱,后继,删除,最小节点,最大节点 1插入:从零开始把节点一个一个
2013-09-29 09:36:17 6141
转载 美国面试之旅——面试经验分享(ZZ)
转载自这里 http://blog.renren.com/blog/944770783/727850263鉴于前几篇日志仅仅是分享了面试的经历,并没有太多实质性的“有用信息”(当然面试流程,公司概况等等信息其实也是有点用的,不过远远不够),如果不写一篇有用一点的日志,估计要遭大家扔鸡蛋了。很少有人国内毕业直接申请国外的公司,一般都是先去国外读书,然后找工作。或者加入该公司的中国分公
2013-09-07 10:43:49 3368
原创 二叉树系列(4)趣图_二叉树的轴对称树
给定一个二叉树,创建一颗新的二叉树,使得新树和原树为是轴具有轴对称关系。比如把下面左图中的树经过轴对称变化改为下面右图中的树。从树的结构看,适合用递归了,仿照递归进行遍历的思路,完成新书的创建,这里和递归遍历不同的是,每次需要记录一下当前节点的父节点的信息,要不然没法链成一颗树。copy_t为原树中待拷贝的节点,parent_t为新树中完成拷贝后的节点的父节点。is_left判
2013-09-02 03:19:33 2790
原创 二叉树系列(3)层序遍历的非递归实现
按照层次序实现二叉树遍历。对于上图中的二叉树,层次遍历的实现结果如下层次遍历的过程天然地符合队列这个数据结构,因此可以用队列方法来非递归地实现层次遍历。目前还不太清楚如何递归地实现层次遍历,网上看到的一些解法,声称采用了递归方法进行层次遍历,但是它们是在while循环中进行的递归,是一种伪递归。由此有可以猜测,可能这种遍历表现出来的数据访问方式确实不匹配递归的算法。下面
2013-09-02 02:42:10 3345 2
原创 二叉树系列(2)前序中序后序遍历的递归和非递归实现
递归地对二叉树进行遍历的做法比较好理解。有一颗树,长成这个样子。下面分别是对它进行三序遍历的结果:前序递归//前序递归void pre_order(link t, void (*visit)(link)){ if(!t) return; visit(t); pre_order(t->l, visit); pre_order(t->r, visit);}
2013-09-01 23:31:28 2126
数据挖掘--概念.模型.方法和算法
2009-09-20
机器学习 Tom Mitchell 中文版
2009-09-20
机器学习英文版Machine Learning(Mitchell)(下)
2009-09-14
机器学习英文版Machine Learning(Mitchell)(中)
2009-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人