关于线索二叉树的问题(很急)~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:29:38
已知中序线索二叉树的一结点是p,试写出在中序遍历序列中求p的后继元素结点q的语句。

template <class T>
ThreadNode<T> * ThreadTree <T>::
Next (ThreadNode<T> * current) {
//函数返回在线索化二叉树中结点*current在中序下的后继结点
ThreadNode<T> *p = current->rightChild;
if (current->rtag == 0) return First (p);
//rtag == 0, 表示有右子女
else return p;
//rtag == 1, 直接返回后继线索
}

template <class T>
ThreadNode<T> * ThreadTree <T> ::
First (ThreadNode<T> * current) {
//函数返回以*current为根的线索化二叉树中的中序序列下的第一个结点
ThreadNode<T> * p = current;
while (p->ltag == 0) p = p->leftChild;
return p;
};