此重要介绍中序遍历线索二叉树。代码如下
void *First(TBTNode *p){//此函数为寻找中序遍历下的第一个结点。或者是TBTNode *First(TBTNode *p)
while(p->ltag==0){//当其有左孩子是一直不断的向左寻找。
p=p->lchild;
}
return p;
}
//构造寻找下一个节点的函数。
void *Next(TBTBNode*p){
if(p->rtag==0)
return First(p->rchild);
else return p->rchild;
}
// 整个的中序遍历线索二叉树的算法
void(Inorder (TBTNode *root){
for(TBTBNode *p=First(root);p!=NULL;p=Next(p)){
vist(p);//当p为NULL是代表其是最后一个孩子。
}
}