大神求教啊,这里的pre到底是哪个啊
// 中序遍历线索化void InThreading(BiThrTree T)
{
if( T )
{
InThreading( T->lchild ); // 递归左孩子线索化
if( !T->lchild ) // 如果该结点没有左孩子,设置ltag为Thread,并把lchild指向刚刚访问的结点。
{
T->ltag = Thread;
T->lchild = pre;//这里的刚访问的节点究竟是哪个节点啊,求图示意?????
}
if( !pre->rchild )
{
pre->rtag = Thread;
pre->rchild = T;
}
pre = T;
InThreading( T->rchild ); // 递归右孩子线索化
}
} 本帖最后由 鸡仔 于 2017-6-14 20:57 编辑
还有if( !pre->rchild )
{
pre->rtag = Thread;
pre->rchild = T;
}
为什么这里的pre->rchild=T啊。。。。。。还有这个T是啥,pre又是哪一个啊
pre指的是当前节点的上一个节点,T指的是当前节点。。譬如:当前节点为右孩子,因为中序遍历的顺序是左孩子->双亲->右孩子这样的顺序,所以右孩子的前驱节点就是双亲; 左孩子的情况也差不多。
http://blog.csdn.net/u014492609/article/details/40477795 这里将的蛮详细的,可以去看下!
页:
[1]