码迷,mamicode.com
首页 >  
搜索关键字:满二叉树 完全二叉树    ( 1098个结果
二叉树
二叉树相关概念:路径:对于节点n1 n2 n3….nk从n1到nk的路径长度为k-1节点的层数:只有一个根节点,则层数为1,其余节点的层数为双亲节点的层数加1树的深度:树中所有节点的最大层数称为树的深度,只有根节点深度为1。满二叉树:所有分支节点存在左子树和右子树,并且所有的叶子节点都在同一层上。完...
分类:其他好文   时间:2014-08-12 21:46:04    阅读次数:199
堆排序——大根堆(大顶堆)
1.小根堆 若根节点存在左子女则根节点的值小于左子女的值;若根节点存在右子女则根节点的值小于右子女的值。 2.大根堆 若根节点存在左子女则根节点的值大于左子女的值;若根节点存在右子女则根节点的值大于右子女的值。 3.结论 (1)堆是一棵完全二叉树(如果公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。 (2)小根堆的根节点的值是最小值,大根堆的根节点的值是最大值。 (3)...
分类:其他好文   时间:2014-08-12 13:35:44    阅读次数:319
【算法与数据结构】图说堆排序
1、堆 一棵完全二叉树 大顶堆:所有非叶子节点元素均不小于其左右子树根节点的值 小顶堆:所有非叶子节点元素均不大于其左右子树根节点的值2、 初始化堆 ①一组无序元素R[0, 1, ..., n - 1], 先按照顺序将该组无序元素构造为一棵完全二叉树 ②从该二叉树的第一个非叶子结点开始调整...
分类:其他好文   时间:2014-08-12 03:06:43    阅读次数:259
堆的插入、删除和建立操作,堆排序
1. 堆堆:n个元素序列{k1,k2,...,ki,...,kn},当且仅当满足下列关系时称之为堆:(ki = k2i,ki >= k2i+1), (i = 1,2,3,4,...,n/2)若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树...
分类:其他好文   时间:2014-08-11 17:05:42    阅读次数:253
数据结构-伸展树
声明:本文是对某高中生的竞赛论文学习的文章介绍: 二叉查找树能够支持多种动态集合操作。对于一个含有n个结点的完全二叉树,这些操作的最还情况运行时间是O(lgn),但如果树是含有n个结点的线性链,则这些操作的最坏情况运行时间为O(n)。而像红黑树、AVL树这种二叉查找树的变形在最坏情况下,仍能保持较....
分类:其他好文   时间:2014-08-08 01:32:25    阅读次数:423
淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
题目:对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。 运用队列,按层遍历,每次遍历一层时,添加新指针,由于每个节点只需要进队一次出队一次,时间复杂度为O(n),空间复杂度为O(n),具体代码如下: #include #include #includ...
分类:其他好文   时间:2014-08-06 19:10:42    阅读次数:184
算法导论 第6章 堆排序
堆数据结构实际上是一种数组对象,是以数组的形式存储的,但是它可以被视为一颗完全二叉树,因此又叫二叉堆。堆分为以下两种类型: 大顶堆:父结点的值不小于其子结点的值,堆顶元素最大 小顶堆:父结点的值不大于其子结点的值,堆顶元素最小 堆排序的时间复杂度跟合并排序一样,都是O(nlgn),但是合并排序不是原地排序(原地排序:在排序过程中,只有常数个元素是保存在数组以外的空间),合并排序的多有元素都被...
分类:其他好文   时间:2014-08-05 22:34:10    阅读次数:232
POJ 2309 BST
1、min和max为奇数,否则min和max非叶子,还可以向下拓展 2、根据满二叉树的性质,x的左右子树的个数都为2的k次方减1个节点 3、根据二叉树搜索的性质,左子树编号的区间为[min,x-1],右子树的编号区间为[x+1,max] 由此得出min=x-(2^k-1),max=x+(2^k-1) lowbit的作用,计算x对应的二进制数中第一个1的位置k,返回权值2k。 这个函数的作用就是求出t这个数的二进制存储下,最高的非0bit所表示的大小。 即满足2^k<=t的最大的2^k,其中k为非负整数。...
分类:其他好文   时间:2014-08-04 21:45:28    阅读次数:294
POJ 3367 Expressions(数据结构-二叉树)
题目大意: 给定一颗满二叉树的后序遍历,小写字母表示叶子节点,以从下到上,从右到左的顺序输出这棵树。 解题思路: 用堆栈构建二叉树,再用bfs遍历树,用堆栈逆序输出。 注意:构树时,若节点用malloc动态分配会超时。...
分类:其他好文   时间:2014-08-03 18:13:15    阅读次数:277
LeetCode——Populating Next Right Pointers in Each Node
题目: 给定一个二叉树(假设是完全二叉树),把每个节点的next指针指向其右侧节点。 思路:首先想到的是,层序遍历树,在遍历的同时添加节点对右侧节点的指针。 另一种简洁的方法是采用递归来实现,间单直观。...
分类:其他好文   时间:2014-08-03 15:23:45    阅读次数:246
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!