二叉树的线索化,这几天以来我很难掌握,今天终于想通了,哈哈,首先我们来看看二叉树线索化之后会变成什么样子,这里我们以图中的二叉树为例,图如下:画的太糙,各位看官讲究着看吧--。所谓二叉树的线索化,就是当一个节点的左右指针为空时,就让它的左右指针指向该节点的前..
分类:
编程语言 时间:
2016-05-01 17:51:32
阅读次数:
208
线索二叉树它解决了无法直接找到该结点在某种遍历序列中的前趋和后继结点的问题,出现了二叉链表找左、右孩子困难的问题,线索二叉树又分为前序线索化,中序线索化和后序线索化,分别用不同的逻辑去实现。线索二叉树的实现思想:借用一个枚举类型tag其中包含两个状态Link(代表..
分类:
其他好文 时间:
2016-04-09 01:43:33
阅读次数:
220
#include<iostream>
usingnamespacestd;
enumPointerTag
{
THREAD,
LINK
};
template<classT>
structBinaryTreeNodeThd
{
BinaryTreeNodeThd(constT&x)
:_data(x)
,_left(NULL)
,_right(NULL)
,_parent(NULL)
,_leftTag(LINK)
,_rightTag(LINK)
{}
T_data;..
分类:
其他好文 时间:
2016-03-26 09:01:29
阅读次数:
279
#pragmaonce//.hpp函数头文件
#include<iostream>
usingnamespacestd;
enumBinTreeNodeChildType
{
Thread,
Link
};
template<classT>
structBinaryTreeThrNode
{
public:
T_data;//数据域
BinaryTreeThrNode<T>*_leftChild;//做孩子
BinaryTreeThr..
分类:
编程语言 时间:
2016-03-16 19:24:53
阅读次数:
258
先根,后子树;先左子树,后右子树二叉树的根节点 a 入队a 的子树,根节点 b 和 c 分别入队然后 b 的子树的根节点入队(为空)c 的子树的根节点入队d 的子树的根节点入队(为空)e 的子树的根节点入队f 的子树的根节点入队(为空)g的子树的根节点入队(为空)结束层序遍历,整个过程就是一层层的遍...
分类:
其他好文 时间:
2015-04-03 19:12:35
阅读次数:
181
6.3线索二叉树(二叉树的线索化)
问题引入:以二叉链表作为存储结构时,只能得到结点的左、右孩子的信息,不能得到直接前驱、后继的信息。
问题解决:将二叉树线索化。
实现原理:n个结点的二叉树具有n+1个空指针域,利用这些空指针域存储结点的前驱、后继信息。
实质:线索化的实质是将二叉链表中的空指针改为指向前驱、后继的线索。
(1)二叉树的存储表示
enum {link,threa...
分类:
其他好文 时间:
2014-10-21 17:45:55
阅读次数:
207
本文用先序、中序、后序、层次遍历4种方式实现了对线索二叉树的线索化,然后分别用上述4种方式实现了线索化的遍历。二叉树中容易找到结点的左右孩子信息,但该结点在某一序列中的直接前驱和直接后继只能在某种遍历过程中动态获得。先依遍历规则把每个结点某一序列中对应的前驱和后继线索预存起来,这叫做"线索化"。意义...
分类:
其他好文 时间:
2014-07-19 11:16:28
阅读次数:
195