永发信息网

请教编程达人!

答案:1  悬赏:70  手机版
解决时间 2021-06-02 07:03
  • 提问者网友:杀手的诗
  • 2021-06-01 13:07

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct Bitree
{
struct Bitree *Lchild,*Rchild;
char elem;
}*BiNode,Bitree;
void CreatBitree(Bitree *bt)
{
char ch;
ch=getchar();
fflush(stdin);
if(ch=='.')
bt=NULL;
else
{
bt=(BiNode)malloc(sizeof(Bitree));
bt->elem=ch; //生成二叉树
CreatBitree(bt->Lchild);
CreatBitree(bt->Rchild);
}
}
void Exchange(Bitree *bt)
{
Bitree *temp;
if(bt!=NULL)
{
temp=bt->Lchild;
bt->Lchild=bt->Rchild; //二叉树的交换
bt->Rchild=temp;
Exchange(bt->Lchild);
Exchange(bt->Rchild);
}
}
void PreOrder(Bitree *bt)
{
if(bt!=NULL)
{
printf("%d",bt->elem); //先序遍历
PreOrder(bt->Lchild);
PreOrder(bt->Rchild);
}
}
void main()
{
struct Bitree *root;
CreatBitree(root);
Exchange(root);
PreOrder(root);
}

在按要求输入完二叉树后··程序出现该内存不能为Read,请问 该怎么解决···答得好的话我有加分!!!!

最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-06-01 14:45

void CreatBitree(Bitree *bt)


改成


void CreatBitree(Bitree * &bt)


当作c++来编译,就可以了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯