线索二叉树的遍历:中序化二叉树主要是为访问运算服务的,这里遍历不需要借助栈,因为它的结点中隐含了线索二叉树的前驱和后继信息。利用线索二叉树,可以实现二叉树遍历的非递归算法。描述代码如下:
1、 求中序线索二叉树中序序列下的第一个结点
ThreadNode *Firstnode(ThreadNode *p){
While(p->ltag0) p=p->lchild; //最左下结点
Return p;
}
2、 求中序线索二叉树中结点p在中序序列下的后继结点
ThreadNode *Nextnode(ThreadNode *p){
If(p->rtag0) return Firstnode(p->rchild);
Else return p->rchild; //rtag==1直接返回后继线索
}
3、 利用上面两个算法,可以写出不含头结点的中序线索二叉树的中序遍历算法:
Void Inorder(ThreadNode *T){
For(ThreadNode *p=Firstnode(T);p!=NULL;p=Nextnode§)
visit§;
}
27线索二叉树的遍历
最新推荐文章于 2023-03-20 13:51:47 发布