![]() |
#2
回到原點2012-11-11 10:57
|

template <class Elem>
void CreateBinTree(BinNode<Elem> *subroot)
{
BinNode<Elem>* T= subroot;
Elem nodeval;
cin>>nodeval;
if(nodeval=='#')
{
subroot=NULL;
return ;
}
else
{
subroot=new BinNodePtr<Elem>();
if(subroot!=NULL)
{
subroot->setVal(nodeval);
CreateBinTree<Elem>(subroot->left());
CreateBinTree<Elem>(subroot->right());
}
}
}
运行的结果是退不出递归,即使输“#”进去了,还是在不断递归,请问有什么问题?void CreateBinTree(BinNode<Elem> *subroot)
{
BinNode<Elem>* T= subroot;
Elem nodeval;
cin>>nodeval;
if(nodeval=='#')
{
subroot=NULL;
return ;
}
else
{
subroot=new BinNodePtr<Elem>();
if(subroot!=NULL)
{
subroot->setVal(nodeval);
CreateBinTree<Elem>(subroot->left());
CreateBinTree<Elem>(subroot->right());
}
}
}