目录
1.中序线索二叉树找后继
代码实现
ThreadNode *FirstNode(Thread *p) //找到以p为根的子树中,第一个被中序遍历的结点
{//循环找到这个结点的左下结点(不一定是叶结点)
while(p->ltag==0) p=p->lchild;
return p;
}
//中序线索二叉树中找到结点p的后继结点
ThreadNode *NextNode(ThreadNode *p){
if(p->rtag=0) return FirstNode(p->rchild);
else return p->rchild;
}
//利用上述函数对中序二叉树遍历
void Inorder(ThreadNode *T){
for(ThreadNode *p=FirstNode(T);p!=NULL;p=NextNode(p))
visit(p);
}//该遍历算法没有用到递归时间复杂度O(1)
2.中序线索二叉树找前驱