试写一个算法,为一棵二叉树建立后序线索二叉树。StatusPostOrderThreading(BiThrTree&T,BiThrTree&pre);//首先建立后序线索树StatusFindNextInBiThrTree(BiThrTree&q,TElemType*p);//再进行查找//后序线索二叉树的算法StatusPostOrderThreading(BiThrTree&Thrt,BiThrTree&T){BiThrTreepre;Thrt=newBiThrNode;//为线索二叉树建立头结点if(!Thrt)exit(OVERFLOW);Thrt->LTag=Link;Thrt->RTag=Thread;Thrt->rchild=Thrt;//右子树回指if(!T)Thrt->lchild=Thrt;//若二叉树空,左子树回指else{Thrt->lchild=T;pre=Thrt;PostThreading(T,pre);//后序遍历进行后序线索化pre->rchild=Thrt;//最后一个结点线索化pre->RTag=Thread;Thrt->rchild=pre;}returnOK;}StatusPostThreading(BiThrTree&T,BiThrTree&pre){if(T){if(T->LTag==Link)PostThreading(T->lchild,pre);if(T->RTag==Link)PostThreading(T->rchild,pre);if(!T->lchild){T->LTag=Thread;___________}if(pre&&!pre->rchild){pre->RTag=Thread;pre->rchild=T;}pre=T;}returnOK;}
举一反三
- 试写一个算法,为一棵二叉树建立后序线索二叉树。 StatusPostOrderThreading(BiThrTree& T,BiThrTree& pre);//首先建立后序线索树 StatusFindNextInBiThrTree(BiThrTree& q,TElemType *p);//再进行查找 // 后序线索二叉树的算法 StatusPostOrderThreading(BiThrTree& Thrt,BiThrTree& T) { BiThrTree pre; Thrt=new Bi
- 试写一个算法,为一棵二叉树建立后序线索二叉树。StatusPostOrderTh...T;}pre=T;}returnOK;}
- 写递归算法,将二叉树中所有结点的左、右子树相互交换。 Status ExchangeBiTree(BiTree& T) { BiTreep; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); __________ } returnOK; }
- 1.编写递归算法,将二叉树中所有结点的左、右子树相互交换。StatusExchangeBiTree(BiTree&T){BiTreep;if(T){p=T->lchild;T->lchild=T->rchild;T->rchild=p;ExchangeBiTree(T->lchild);}returnOK;}
- 1.编写递归算法,将二叉树中所有结点的左、右子树相互交换。 StatusExchangeBiTree(BiTree& T) { BiTree p; if(T){ p=T->lchild; T->lchild=T->rchild; T->rchild=p; ExchangeBiTree(T->lchild); } return OK; }