建立中序线索树

来源:互联网 发布:Java中log4j的用法 编辑:程序博客网 时间:2024/06/05 03:34
#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef struct Node{    int Ltag,Rtag;    ElemType data;    Node *Lchild,*Rchild;} BiTNode,*BiTree;BiTNode *pre=NULL;BiTree CreateBiTree();//建立二叉树void Inthread(BiTree T);//建立中序线索树int main(void){    BiTree root=CreateBiTree();    Inthread(root);//中序    return 0;}BiTree CreateBiTree()//建立二叉树{    ElemType x;    BiTree T;    scanf("%c",&x);    if(x=='#')        T=NULL;    else    {        T=(BiTree)malloc(sizeof(BiTNode));        T->data=x;        T->Lchild=CreateBiTree();        T->Rchild=CreateBiTree();    }    return T;}void Inthread(BiTree T)//建立中序线索树{    if(T!=NULL)    {        Inthread(T->Lchild);        if(T->Lchild==NULL)        {            T->Ltag=1;            T->Lchild=pre;        }        if(pre!=NULL&&pre->Rchild==NULL)        {            pre->Rchild=T;            pre->Rtag=1;        }        pre=T;        Inthread(T->Rchild);    }}

原创粉丝点击