树形结构是数据结构中最基础的结构之一,而二叉树又是基础中的基矗所以这篇文章我们来介绍介绍二叉树的结构和基本的遍历方法。1.二叉树的基础知识二叉树是N个节点的集合,每个节点最多只能有两个节点,每个节点对应的两个子树分别为左子树和右子树。满二叉树:除在二叉树最下层..
分类:
其他好文 时间:
2016-04-25 19:43:18
阅读次数:
288
对《大话数据结构》P396~P406—堆排序,进行了自己的理解并完善了代码。 一、堆排序之前需要掌握以下知识 1、完全二叉树 例如下图这样的,编号出现空档,就不是完全二叉树。 2、完全二叉树的性质 这三个性质中最重要的是1,看图就很好理解,即如果i>1,i的双亲节点是i/2。 3、堆 4、堆的性质 ...
分类:
编程语言 时间:
2016-04-24 15:45:24
阅读次数:
253
在数据结构里,堆是一类很重要的结构。堆结构是一组数组对象,我们可以把它当作是一颗完全二叉树。最大堆:堆里每一个父亲节点大于它的子女节点。最小堆:堆里每一个父亲节点小于它的子女节点。如图就是一个最大堆:实现代码时我的测试序列是:inta[]={10,11,13,12,16,18,15,17,..
分类:
其他好文 时间:
2016-04-23 23:14:02
阅读次数:
716
堆是什么?刚接触到这个概念估计都摸不着头脑,不知道堆是什么样个东西。简单介绍下,堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。堆结构的二叉树存储有两种情况:(1).最大堆:每个父节点的都大于孩子节点。(2).最小堆:每个父节点的都小于孩子节点。举个例子..
分类:
其他好文 时间:
2016-04-23 23:09:57
阅读次数:
246
首先先来看一下树的结构:树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。而二叉树就是树的一种特殊结构:完全二叉树的数组表示链表存储表示下面我就实现一下二叉链的这种结构:首先是它的节点的结构:template<typenameT>
structBinaryTreeNode
{
publ..
分类:
编程语言 时间:
2016-04-23 15:09:54
阅读次数:
248
二叉树的性质和常用操作代码集合性质:
二叉树的性质和常用代码操作集合
性质1:在二叉树的第i层上至多有2^i-1个结点
性质2:深度为k的二叉树至多有2^k - 1个结点
性质3:对任意一棵二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0 = n2 + 1
满二叉树:深度为k且有2^-1个结点的树
完全二叉树:深度为k,结点数为n的二叉树,如果其结点1...
分类:
其他好文 时间:
2016-04-22 20:26:52
阅读次数:
169
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。
二叉堆的定义
二叉堆是完全二叉树或者是近似完全二叉树。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。
2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。
当父结点的键值总...
分类:
编程语言 时间:
2016-04-22 19:40:49
阅读次数:
188
二叉树二叉树:二叉树是一棵特殊的树,二叉树每个节点最多有两个孩子结点,分别称为左孩子和右孩子满二叉树:高度为N的满二叉树有2^N-1个节点的二叉树。完全二叉树:若设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边..
分类:
其他好文 时间:
2016-04-22 16:46:56
阅读次数:
127
平衡二叉树和红黑树最差情况分析
1.经典平衡二叉树
平衡二叉树(又称AVL树)是带有平衡条件的二叉查找树,使用最多的定理为:一棵平衡二叉树是其每个节点的左子树和右子树的高度最多差为1的二叉查找树。因为他是二叉树的一种具体应用,所以他同样具有二叉树的性质。例如,一棵满二叉树在第k层最多可拥有个节点(性质1)。一棵树的高度为其从根节点到最底层节点经过的路径数(例如只含一个节点的树的高度为0)(性质...
分类:
其他好文 时间:
2016-04-22 13:37:24
阅读次数:
646
1. 基本术语 度(degree):一个节点的子树个数称为该节点的度; 树中结点度的最大值称为该树的度。 层数(level):从根结点开始算,根节点为1 高度(height)/深度(depth):节点的最大层数 2. 二叉树性质 满二叉树: 完全二叉树: 3. 二叉树的存储结构 1)顺序存储结构 2 ...
分类:
编程语言 时间:
2016-04-22 12:01:11
阅读次数:
310