请各位变成高手给查查错
#include <iostream>using namespace std;
struct t
{
char e;
t *lc,*rc;
};
int whil=1;
void ct(t *root)
{
char ee;
cin>>ee;
if(ee=='.') root=NULL;
else
{
root=new t;
root->e=ee;
ct(root->lc);
ct(root->rc);
}
}
void dlr(t *root)
{
if(root!=NULL)
{
cout<<root->e;
dlr(root->lc);
dlr(root->rc);
}
cout<<endl<<"先序遍历完成"<<endl;
}
void ldr(t *root)
{
if(root!=NULL)
{
ldr(root->lc);
cout<<root->e;
ldr(root->rc);
}
cout<<endl<<"中序遍历完成"<<endl;
}
void lrd(t *root)
{
if(root!=NULL)
{
lrd(root->lc);
lrd(root->rc);
cout<<root->e;
}
cout<<endl<<"后序遍历完成"<<endl;
}
void vt(t *root)
{
if(root!=NULL)
{
if(root->rc==NULL&&root->rc==NULL) cout<<root->e;
dlr(root->lc);
dlr(root->rc);
}
cout<<endl<<"叶子节点输出完成"<<endl;
}
int main()
{
t tree;
while(whil)
{
char a;
cout<<"请选择操作:1 创建树 2 遍历树 3 叶子结点输出 4 结束程序"<<endl;
cin>>a;
switch(a)
{
case '1':ct(&tree);break;
case '2':
{
dlr(&tree);
ldr(&tree);
lrd(&tree);
};break;
case '3':ct(&tree);break;
case '4':whil=0;break;
default:cout<<"无此选项"<<endl;
}
system("pause");
system("cls");
}
return 0;
}
这段关于二叉树的代码,为什么无法遍历