原文:二叉树的基本概念和实现 继续是《数据结构算法与应用:C++语言描述》的笔记,这是第八章二叉树和其他树的内容,本节内容介绍树的定义以及二叉树的代码实现。 树 树t是一个非空的有限元素的集合,其中一个元素为根,余下的元素组成t的子树。 在画一棵树时,每个元素都代表一个节点。树根在上面,其子树画在下 ...
分类:
其他好文 时间:
2016-08-19 00:52:19
阅读次数:
188
题目:输入两颗二叉树A和B,判断B是不是A的子结构。二叉树的定义如下: 代码如下: ...
分类:
其他好文 时间:
2016-08-18 14:13:08
阅读次数:
121
二叉树的定义采用递归的方式,遍历方式也可以采用递归,而且极其简明。 两个二叉树遍历的性质: 1:已知前序遍历和中序遍历,可以唯一确定一棵树 2:已知后序遍历和中序遍历,可以唯一确定一棵树 ...
分类:
编程语言 时间:
2016-08-16 00:26:02
阅读次数:
146
判断二叉树是否为完全二叉树。完全二叉树的定义是,前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的。这个问题的描述已经提示了解法,采用广度优先遍历,从根节点开始,入队列,如果队列不为空,循环。遇到第一个没有左儿子..
分类:
其他好文 时间:
2016-08-08 01:02:49
阅读次数:
132
完全二叉树:若一棵二叉树具有具有n个节点,它的每个节点都与高度为k的满二叉树编号为0~n-1结点一一对应,则称这可二叉树为完全二叉树。方法一:一维数组存储根据完全二叉树的定义和性质,利用一位数组作为完全二叉树的存储,如下图由图,节点的编号与数组元素的下标是一一对应..
分类:
其他好文 时间:
2016-08-06 14:33:05
阅读次数:
144
之前一直说有道题目要用到二叉树的定义以及遍历,所以一直都没写,这次先来说说二叉树的遍历。 对于二叉树的定义,以及二叉树的一些性质,在这里我就不多说了。 这次主要是说说怎么样去遍历一颗二叉树。 这里一共给出4种遍历的方式,然后给出思路,具体代码就不编写了,因为对于二叉树来说,不同的方式存放,代码差距还 ...
分类:
其他好文 时间:
2016-07-17 12:52:17
阅读次数:
156
介绍二叉树之前先介绍一下树相关的概念。
树的定义:树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。
树的概念:
节点:结点包含数据和指向其它节点的指针。
根节点:树第一个结点称为根节点。
结点的度:结点拥有的子节点个数。
叶节点:没有子节点的节点(度为0)。
父子节点:一个节点father指向另一个节点child,则child为孩子节点,father为父...
分类:
其他好文 时间:
2016-07-10 18:55:23
阅读次数:
195
1. 树的定义与抽象数据类型 (1) 树的定义 树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中: 需要注意的是: n>0时根结点是唯一的,不可能存在多个根结点,别和现实中的大树混为一起,现实中的树有很多根须,那是真实的树,数据结构中的树是只能有一个根结点; m>0 ...
分类:
其他好文 时间:
2016-06-28 09:20:36
阅读次数:
167
一,B树的定义及介绍 为什么会有B树? 熟悉的树的结构有二叉树查找树或者平衡二叉树……平衡二叉树保证最坏情况下各个操作的时间复杂度为O(logN),但是为了保持平衡,在插入或删除元素时,需要进行旋转啊...一系列操作,因此实现起来比较复杂。而对于二叉查找树,基本操作在最坏情况下会出现O(N)的时间复 ...
分类:
其他好文 时间:
2016-06-25 21:38:55
阅读次数:
141