1、 线索二叉树的构造:对于二叉树的线索化,实质就是遍历一次二叉树,只是在遍历的过程中,检查当前节点左、右指针域是否为空,若为空,将它们改为指向前驱结点或后继结点的线索。
2、 通过中序遍历对二叉树线索化的递归算法如下: Void InThread(ThreadTree &p,ThreadTree &pre){ If(p!=NULL){ InThread(p->lchild,pre);//递归,线索化左子树 If(p->lchildNULL){//左子树为空,建立前驱 p->lchild=pre; p->ltag=1; } If(pre!=NULL&&pre->rchildNULL){ pre->rchild=p; //建立前驱结点的后继线索 pre->rtag=1; } pre=p; InThread(p-rchild,pre); }//if(p!=NULL) } 3、 通过中序遍历建立中序线索二叉树的主过程描述代码 Void createInThread(ThreadTree T){ ThreadTree pre=NULL; If(T!=NULL){ //非空二叉树,线索化 InThread(T,pre); //线索化二叉树 Pre->rchild=NULL;//处理遍历的最后一个结点 Pre->rtag=1; } }