请教C++中关于二叉树的创建和遍历的问题

2025-05-11 10:34:44
推荐回答(1个)
回答1:

我给你指出几点错误和不妥之处吧(仅供参考):
(1)你这是中序遍历吗?我认为是先序的。
(2)你的creat函数参数有问题,要改为指针的引用。不然就要用双重指针建立树,因为建立树的过程中那个传入的指针指向了别处。这和用指针传参数的目的和作用是背道而驰的,到不到目的的。你可以直接去试试visit函数。
(3)void BiTree::InOrderTraverse(struct BiTreeNode *Tnode)
{
if(Tnode)
{
if(Visit(Tnode))
{
if(Visit(Tnode->lchild))
if(Visit(Tnode->rchild))
cout<<"Traverse Completed"<}
else
exit(OVERFLOW);
}
} 你的这段程序cout<<"Traverse Completed"<(4)Create Completed!改为creating更贴切
(5)定义一个指针时最好要对其初始化,不然就是野指针,是很危险的