后序遍历线索化二叉树_二叉树的中序线索链表

2022-10-05 10:24:32 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript复制
#include<stdio.h>
 typedef struct ThreadNode{
    int data;
    struct ThreadNode *lchild,*rchild;
    int ltag,rtag;
 }ThreadNode,*ThreadTree; 
 //用二叉树中序遍历对二叉树线索化
 void InThread(ThreadTree &p,ThreadTree &pre)
{
    if(p!=NULL)
     {
        InThread(p->lchild,pre);            //类似于中序遍历,先递归到最左下的结点 
        if(p->lchild == NULL)               //判断结点的左儿子是否为空 
        {
            p->lchild = pre;
            p->ltag=1;      
        }
        if(pre!=NULL&&pre->rchild==NULL)    //判断该结点的前驱结点的右儿子是否为空(此时该结点为其前驱结点的左儿子) 
        {
            pre->rchild = p;
            pre->rtag=1;
        }
        pre = p;                            //将此结点置为其左儿子的前驱结点
        InThread(p->rchild,pre);            //左结点判定结束后向右转移,将此结点视为根结点 
     }  
} 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

0 人点赞