数据结构--线索树

本文介绍了如何构建线索二叉树,通过一个字符串表示二叉树元素,并详细阐述了二叉树的中序线索化过程。讨论了如何获取线索树中结点的前驱和后继,以及线索二叉树在需要频繁遍历和查找结点前后继场景下的应用。
摘要由CSDN通过智能技术生成

线索树的构造思路
(1)首先构造出一棵二叉树
(2)然后将二叉树线索化(1.中序2.先序3.后序)

关于二叉树的建立(方法之一)
(1)用一个字符串来表示二叉树上的元素,其中’#’代表无效结点,然后可以根据自己的需求来调整字符串顺序
char *str = “ABC##DE##F##G#H##”;

希望构建中序遍历是
C B E D F A G H
先序遍历
A B C D E F GH 的二叉树
二叉树建立函数

BinaryNode * CreateTree(char *& str)
{
    BinaryNode* s = NULL;
    if (*str != '#')
    {
        s = (BinaryNode*)malloc(sizeof(BinaryNode));
        s->data = *str;
        s->left = 0;
        s->right = 0;

        s->leftNode = CreateTree(++str);
        s->rightNode = CreateTree(++str);
    }
    return s;
}

二叉树成功建立了以后是线索化
中序线索化


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值