关于树的遍历,在递归中,一直往下层走,是如何返回上一层的?
cout << this->Index << endl; //先输出当前结点。
this->pLchild->ProTraversal(); //在左结点中,先输出左结点,如果没有左右结点,结束语句(跳出函数)。
this->pRchild->ProTraversal(); //在右结点中,先输出右结点,如果没有左右结点,结束语句(跳出函数)。
函数有执行顺序的,先执行最最最里层的函数,再跳出该函数继续执行倒第二层函数接下来的函数。以此类推,最后一次执行的是第一次调用此函数的return。
前.中.后序遍历:利用递归
前序遍历:
void Node::PreorderTraversal()
{
cout<<this->data;
if(this->right != NULL)
this->right->PreorderTraversal();
if(this->left !=NULL)
this->left->PreorderTraversal();
}
其它两种遍历只需交换代码位置