猿问

二叉树前序递归遍历中当输出到最左下的结点时,然后是怎么输出最左下的结点的兄弟结点的;

void node::priorordertraverse()
{
 cout << this->index << "  " << this->date << endl;
 if (this->plchild != NULL)
  this->plchild->priorordertraverse();
 if (this->prchild != NULL)
  this->prchild->priorordertraverse();
}

如上图;

按上面的代码不是到4时就结束递归了吗;

但是程序运行时他就能遍历出正确的顺序;

4是怎么到5的;

以及输出5后又是怎么到6的;

求大神解决啊!!!!

qq_梵蒂冈_1
浏览 1155回答 1
1回答

Caballarii

在3的上面的时候,this->plchild->priorordertraverse();执行了4,this->prchild->priorordertraverse();执行了5。同理,在2上面的时候,this->plchild->priorordertraverse();执行了3,this->prchild->priorordertraverse();执行了6
随时随地看视频慕课网APP

相关分类

数据结构
我要回答