二叉树的遍历问题

woshisheng112 2008-12-22 03:20:14
//////先序遍历//////////
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)不满足,然后循环结束。
我知道应该是错的。但不知道为什么。
大家给我讲讲怎么理解吧!

...全文
44 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshisheng112 2008-12-22
  • 打赏
  • 举报
回复
是的 我突然又知道了 结束
taifeng123 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 woshisheng112 的帖子:]
//////先序遍历//////////
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)不满足,然后循环结束。
我知道应该是错的。但不知道为什么。
大家给…
[/Quote]
别忘了还要遍历右子树

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧