1 基于二叉链表的有序二叉树
1.1 问题
BST是Binary Search Tree的缩写,译为二叉搜索树,或有序二叉树,是二叉树的一种,它的定义如下:
1)或者是一棵空树;
2)或者是具有下列性质的二叉树:
I) 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
II) 若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
III)左、右...
分类:
编程语言 时间:
2016-04-22 10:37:48
阅读次数:
318
二叉树:树的每个节点最多有两个子节点。我们看下它的结构,有二叉链表结构与三叉链表结构,具体结果如我摘自《C++Primer》中的图。相比之下,三叉链表的优势在于当我们知道父亲节点要找他的子女节点比较方便和便捷,反之当我们知道子女节点找它的父亲节点时也方便。下面,我实..
分类:
其他好文 时间:
2016-04-20 02:16:09
阅读次数:
227
线索二叉树它解决了无法直接找到该结点在某种遍历序列中的前趋和后继结点的问题,出现了二叉链表找左、右孩子困难的问题,线索二叉树又分为前序线索化,中序线索化和后序线索化,分别用不同的逻辑去实现。线索二叉树的实现思想:借用一个枚举类型tag其中包含两个状态Link(代表..
分类:
其他好文 时间:
2016-04-09 01:43:33
阅读次数:
220
头文件:head.h
#include
#include
#include /* malloc()等 */
#include /* INT_MAX等 */
#include /* EOF(=^Z或F6),NULL */
#include /* atoi() */
#include /* eof() */
#include /* floor(),ceil(),abs() */
#include /...
分类:
其他好文 时间:
2016-04-06 23:38:22
阅读次数:
441
二叉排序树又称二叉查找树,它是一种对排序和查找都很有用的特殊二叉树。
定义:(1)若它的左子树不为空,则左子树上的所有结点的值均小于它的根结点的值;(2)若它的右子树不为空,则右子树上所有结点的值均小于它的根结点上的值;(3)它的左右子树本身也分别为二叉排序树。通过中序排列我们发现中序遍历的结果是结点的值是由低到高的。二叉排序树的二叉链表存储表示typedef struct{
keyType k...
分类:
编程语言 时间:
2016-03-10 12:52:39
阅读次数:
245
二叉树特点
每个节点最多有两棵子树;
二叉树是有序的,即区分左右子树的次序。
完全二叉树
叶子节点只能出现在最下两层,且最下层的叶子节点都集中在二叉树左侧连续的位置。
如果有度为1的节点,只可能有一个,且该节点只有左孩子。
二叉树实现
这里只讲二叉链表实现,使用C++。
templateclass DataType>
struct BiNode
{
DataTy...
分类:
编程语言 时间:
2016-02-25 01:42:09
阅读次数:
265
通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。 因此,提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。 记ptr指向二叉链表中...
分类:
其他好文 时间:
2015-12-23 12:27:02
阅读次数:
192
#define_CRT_SECURE_NO_WARNINGS
#definem100
typedefcharDataType;
typedefstructNode/*二叉链表的结构体*/
{
DataTypedata;
structNode*LChild;
structNode*RChild;
}BiTNode,*BiTree;
#defineQueue_Size100
typedefBiTreeQueueElement;
typedefstruct//定义顺序队列..
分类:
其他好文 时间:
2015-11-25 01:14:35
阅读次数:
188
三叉链表存储表示 改进于二叉链表,增加指向父节点的指针,能更好地实现结点间的访问。 存储结构/* 二叉树的三叉链表存储表示 */ typedef struct BiTPNode { TElemType data; struct BiTPNode *parent,*lchild,*rchild; /*...
分类:
其他好文 时间:
2015-11-01 00:16:30
阅读次数:
307
#include using namespace std;#include "Status.h"typedef char TElemType;#include "BiTree.h"int main(){BiTree T; CreateBiTree(T);cout>ch;if(ch=='#') T=N...
分类:
编程语言 时间:
2015-10-29 13:25:32
阅读次数:
143