二叉树的遍历问题
//////先序遍历//////////
template<typename T>
void PreOrder(Binarytnode<T>*t)
{
if(t)
{
cout<<t->data <<" "; //(1)
PreOrder(t->Left ()); //(2)
PreOrder(t->Right ()); //(3)
}
}
我的理解是:先执行(1),然后到了(2)开始递归,再执行(1),再到(2)又递归。。。如此循环到最后一个(2)为空子树的时候
if(t)不满足,然后循环结束。
我知道应该是错的。但不知道为什么。
大家给我讲讲怎么理解吧!