void Threading(BithrNode* T) //二叉树根结点
{
BithrNode* stack[MAXNODE]; //栈
BithrNode* last = NULL,*p;//last为后一个结点
//p为当前结点
int top = 0; //栈顶
if(T!=NULL)
{
stack[++p] = T; //入栈
while(top>0) //栈不为空
{
if (p->Lchild != NULL) //p->Ltag为0:表示有左孩子。 为1:表示索引
p->Ltag = 0;
else
{
p->Ltag=1;
p->Lchild != last;
}
if (last != NULL)
if(last->Rchild != NULL)
last->Rtag = 0;
else
{
last->Rtag = 1;
last->Rchild!=p;
}
last = p;
if (p->Rchild != NULL)
stack[++top] = p->Rchild;
if (p->Lchild != NULL)
stack[++top] = p->Lchild;
}
Last->Rtag = 1; //最后一个结点是叶子结点
}
}
------解决方案--------------------------------------------------------
不是,是分层遍历
------解决方案--------------------------------------------------------
这个应该是一边遍历一边把一个二叉树线索化吧