数据结构⼀编程⼀二叉树的问题~!!!!!

2025-04-15 07:53:00
推荐回答(1个)
回答1:

主要问题:
1、二叉树结点类型没有默认构造,因此叶子结点指针值默认不是0
2、主函数中的输入不要是字符型的,改为整型
3、部分函数中还有一些明显错误
4、那个yezi的意思不明白
5、二叉树结点的数据类型不要是整型,改为字符型
下面是大致修改了的
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
BiTNode( ) : lchild(0), rchild(0) { }
}BiTNode,*bitree;
void crbitree(bitree &T)
{
char c;
cin>>c;
if(c=='#') T=NULL;
else
{
T=new BiTNode;
T->data=c;
crbitree(T->lchild);
crbitree(T->rchild);
}
}
void qian(bitree T)
{
if(T)
{
cout<data;
qian(T->lchild);
qian(T->rchild);
}
}
void zhong(bitree T)
{
if(T)
{
zhong(T->lchild);
cout<data;
zhong(T->rchild);
}
}
void hou(bitree T)
{
if(T)
{
hou(T->lchild);
hou(T->rchild);
cout<data;
}
}
int depth(bitree T)
{
if(T==NULL) return 0;
else
{
int m=depth(T->lchild);
int n=depth(T->rchild);
if(m>n) return m+1;
else return n+1;
}
}
int yezi(bitree T)
{
if(T==NULL)
{
return T->data;
}
else
{
if(!yezi(T->lchild)||!yezi(T->rchild))
{
int count=count+1;
return count;
}
}
}

int main()
{
bitree T;
while(1)
{
cout<<"1"< cout<<"2"< cout<<"3"< cout<<"4"< cout<<"5"< int no;
cin>>no;
switch(no)
{
case 1:
{
cout<<"请输入结点"< crbitree(T);
}break;
case 2:qian(T);break;
case 3:zhong(T);break;
case 4:hou(T);break;
case 5:cout< case 6:cout< }
}
return 0;
}