-
typedef struct BiThrNode
-
{
-
char data;
-
struct BiThrNode *lchild, *rchild;
-
PointerTag LTag;
-
PointerTag RTag;
-
}BiThrNode, *BiThrTree;
-
-
BiThrTree pre;
-
-
void InThreading(BiThrTree p) //建立
-
{
-
if(p)
-
{
-
InThreading(p->lchild);
-
if(!p->lchild)
-
{
-
p->LTag=Thread;
-
p->lchild=pre;
-
}
-
if(!pre->rchild)
-
{
-
pre->RTag=Thread;
-
pre->rchild=p;
-
}
-
pre=p;
-
InThreading(p->rchild);
-
}
-
}
-
-
bool InOrderTraverse_Thr(BiThrTree T) //遍历
-
{
-
BiThrTree p;
-
p=T->lchild;
-
while(p!=T)
-
{
-
while(p->LTag==Link)
-
{
-
p=p->lchild;
-
}
-
cout<<p->data;
-
while(p->RTag==Thread&&p->rchild!=T)
-
{
-
p=p->rchild;
-
cout<<p->data;
-
}
-
p=p->rchild;
-
}
-
return true;
-
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1145881/
,如需转载,请注明出处,否则将追究法律责任。