问答题 已知中序线索二叉树T右子树不空。设计算法,将S所指的结点作为T的右子树中的一个叶子结点插入进去,并使之成为T的右子树的(中序序列)第一个结点(同时要修改相应的线索关系)。【合肥工业大学2001五、2(8分)】
【正确答案】正确答案:若使新插入的叶子结点S成T右子树中序序列的第一个结点,则应在T的右子树中最左面的结点(设为p)处插入,使S成为结点P的左子女,则S的前驱是T,后继是P。 p=T一>rchild; //p指向T的右子女 while(p一>itag==0)p=p一>Ichild; //P最终指向T的右子树中最左面的结点 S一>itag=1; s一>rtag=1; //s是叶子,其左右标记均为1 s一>ichild=T;s一>rchild=p; //s的前驱是根结点T,后继是结点P P一>ichild=S;p->itag=0; //将P的左子女指向S,并修改左标志为0
【答案解析】