堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为
0 的情形中:父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置...
分类:
其他好文 时间:
2014-04-30 17:13:32
阅读次数:
464
完成一个函数,输入一个二叉树,该函数输出它的镜像。
分类:
其他好文 时间:
2014-04-29 21:25:58
阅读次数:
457
先解释一下一些最基本的概念结点的孩子结点个数即为该结点的度.度为0的结点叫叶子结点.处在树的最顶端(没有双亲)的结点叫根结点.介绍一下公式k:总度数k+1:总节点数为什么总节点数肯定比总度数多1呢?其实很简单可以解释,度可以看作节点与节点之间的线,多1就是显而易见的设该二叉树总结点数为N,叶子结点个...
分类:
其他好文 时间:
2014-04-29 17:23:47
阅读次数:
256
这道题也很简单,只要把二叉树按照宽度优先的策略遍历一遍,就可以解决问题,采用递归方法越是简单。下面是AC代码:
1 /** 2 * Sum Root to Leaf Numbers 3 * 采用递归的方法,宽度遍历 4 */ 5 int result=0; 6...
分类:
其他好文 时间:
2014-04-28 10:05:40
阅读次数:
682
分析的过程:1、假设前序遍历的第一个值为a,该值就是原二叉树的根节点。2、在中序遍历结果中查找a。
则在中序遍历中a前面的节点,就是原二叉树a节点左子树的中序遍历结果;在a后面的节点,就是原二叉树a节点右子树的中序遍历结果。3、由第二步得到a节点左子树的节点个数为m,那么在前序遍历中a后面的m个节点...
分类:
其他好文 时间:
2014-04-28 02:32:53
阅读次数:
451
很久没有用过二叉树了,最近由于需要用到了,发现很多知识需要巩固了,中间涉及到一个算法就是找任意两个节点的最近祖先。通过本人回顾和演算,最终提出了下面一个方法,网上也有很多其他的方式实现,再次仅对自己好几个小时的工作作个记录和积累吧!
程序是用C语言写的,个人觉得如果用C#实现会更加方便。首先是数据结...
分类:
其他好文 时间:
2014-04-27 21:49:15
阅读次数:
693