免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1944 | 回复: 5
打印 上一主题 下一主题

关于二叉树线索化的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-19 20:37 |只看该作者 |倒序浏览
typedef enum PointerTag{Link = 0,Thread = 1};
typedef struct BiThrNode
{
        char data;
        struct BiThrNode *lchild,*rchild;
        PointerTag LTag,RTag;
}BiThrNode,*BiThrTree;
int InOrderThreading(BiThrTree &Thrt,BiThrTree T)
{
        //中序遍历二叉树T,并将其中序线索化,Thrt指向头结点
        if(!(Thrt = (BiThrTree)malloc(sizeof(BiThrNode))))exit(-1);
        Thrt->LTag = Link;Thrt->RTag = Thread;//建头结点
        Thrt->rchild = Thrt;
        if(!T)Thrt->lchild = Thrt;//若二叉树为空,则左指针会指
        else
        {
                Thrt->lchild = T;pre = Thrt;
                InThreading(T);//中序遍历进行中序线索化
                pre->rchild = Thrt;pre->RTag = Thread;//最后一个结点线索化
                Thrt ->rchild = pre;
        }
        return true;
}//InOrderThreading
void InThreading(BiThrTree p)
{
        if(p)
        {
                InThreading(p->lchild);//左子树线索化
                if(!p->lchild){p->RTag = Thread;p->lchild = pre;}//前驱线索
                if(!pre->lchild){pre->RTag = Thread;pre->rchild = p;}//后继线索
                pre = p;
                InThreading(p->rchild);//右子树线索化
        }
}//InThreading

论坛徽章:
0
2 [报告]
发表于 2007-04-19 20:39 |只看该作者

各位大侠帮忙看一下为什么有内存不能访问的问题

各位大侠帮忙看一下为什么有内存不能访问的问题

论坛徽章:
0
3 [报告]
发表于 2007-04-19 22:29 |只看该作者
if(!pre->rchild){pre->RTag = Thread;pre->rchild = p;}//后继线索
-----------
输入时多小心

论坛徽章:
0
4 [报告]
发表于 2007-04-19 23:12 |只看该作者
晕,这样的描述叫别人怎么帮助你,起码给出来错误信息啊

论坛徽章:
0
5 [报告]
发表于 2007-04-20 01:59 |只看该作者
if(!pre->lchild){pre->RTag = Thread;pre->rchild = p;}//后继线索 ????????????????

论坛徽章:
0
6 [报告]
发表于 2007-04-20 09:21 |只看该作者
自己用调试工具看呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP