题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5524问一棵完全二叉树有多少种子树包含的节点数量不同。首先可以肯定的是,一棵完全二叉树有可能是满二叉树,满二叉树的子树依然是满二叉树。但是完全二叉树的子树有一棵是满二叉树,另一棵是完全二叉树。根据给定节点...
分类:
其他好文 时间:
2015-10-31 22:57:15
阅读次数:
258
几个二叉树的性质首先要知道:每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 1、非空二叉树的第n层上至多有2^(n-1)个元素。 2、深度为h的二叉树至多有2^h-1个结点。 满二叉树:所有终端都在同一层次,且非终端结点的度数为2。 在满二叉树中若其深度为h,则其所包含的结点数必为2^h-...
分类:
其他好文 时间:
2015-10-31 00:16:02
阅读次数:
325
今天看堆排序,以前没注意,写个小程序记忆一下。堆排序实际上就是个完全二叉树,试着画一棵试试,记忆算法很简单,大根堆满足跟比叶子大,小根堆反之。算法思想见百度百科:1,先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区2,再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交...
分类:
编程语言 时间:
2015-10-30 18:37:48
阅读次数:
249
Given acompletebinary tree, count the number of nodes.Definition of a complete binary tree fromWikipedia:In a complete binary tree every level, except...
分类:
其他好文 时间:
2015-10-25 16:11:08
阅读次数:
190
一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:父亲的区间是[a,b],(c=(a+b)/2)左儿子的区间是[a,c],右儿子...
分类:
其他好文 时间:
2015-10-17 17:36:37
阅读次数:
255
堆排序:时间复杂度:O(nlogN)数据结构:堆,可以认为是一个完全二叉树特点:序号为i节点的父节点序号是i/2;左孩子节点序号是2*i;右孩子节点序号为2*i+1;使用对排序的步骤:1.构造堆(全部排序)2.构造固定大小的堆,然后依次处理剩余元素(TopN)
分类:
编程语言 时间:
2015-10-12 19:23:04
阅读次数:
128
http://blog.csdn.net/SJF0115/article/details/8610201前序:(二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。树的每一层都是填满的,最后一层除外。树的根为a[1] (在这里是从1开始的,也可...
分类:
编程语言 时间:
2015-10-09 21:10:26
阅读次数:
274
原文:http://blog.csdn.net/morewindows/article/details/6709644堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树...
分类:
编程语言 时间:
2015-10-04 19:35:40
阅读次数:
300
二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个...
分类:
编程语言 时间:
2015-10-03 21:52:15
阅读次数:
340
二叉树:定义:二叉树在图论中是这样定义的:二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根节点的度不大于2。基本概念:二叉树是递归定义的,其结点有左右之分,逻辑上二叉树有五种基本形态:1>空二叉树;2>只有一个根节点的二叉树;3>只有左子树;4>只有右子树;5>完全二叉树。...
分类:
其他好文 时间:
2015-09-29 12:54:55
阅读次数:
134