写出中序线索二叉树的线索化过程
设计思想:递归地将左子树中序线索化,然后判断若没有左孩子,则左指针指向前驱结点,若前驱不空则给前驱加上后继线索,然后递归的将右子树中序线索化。
代码:
void CreatInThread(ThreadTree T)
{
ThreadTree pre=NULL;
if(T!=NULL)
{
InTread(T,pre);
pre->rchild=NULL;
pre->rtag=1;
}
}
void InTread(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->tag=1;
}
pre=p;
InTread(p->rchild,pre);
}
}