鸡仔 发表于 2017-6-14 20:25:46

大神求教啊,这里的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:30:43

本帖最后由 鸡仔 于 2017-6-14 20:57 编辑

还有if( !pre->rchild )
      {
            pre->rtag = Thread;
            pre->rchild = T;
      }
为什么这里的pre->rchild=T啊。。。。。。还有这个T是啥,pre又是哪一个啊

qianhz123 发表于 2017-8-10 10:22:14

pre指的是当前节点的上一个节点,T指的是当前节点。。譬如:当前节点为右孩子,因为中序遍历的顺序是左孩子->双亲->右孩子这样的顺序,所以右孩子的前驱节点就是双亲;    左孩子的情况也差不多。
http://blog.csdn.net/u014492609/article/details/40477795 这里将的蛮详细的,可以去看下!
页: [1]
查看完整版本: 大神求教啊,这里的pre到底是哪个啊