一个关于双叉树实现的算法,输出有问题。望斧正
#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
char data;
struct Node* LChild;
struct Node* RChild;
} BiNode,*BiTree ;
int CreateBiTree(BiTree *bt)
{
char ch;
ch=getchar();
if (ch=='.') *bt=0;
else
{
*bt=(BiTree)malloc(sizeof(BiNode));
(*bt)->data=ch;
CreateBiTree(&((*bt)->LChild));
CreateBiTree(&((*bt)->RChild));
}
return 0;
}
int PreOrder(BiTree root)
{
if (root!=0)
{
printf("%c",&root->data);
PreOrder(root->LChild);
PreOrder(root->RChild);
};
return 0;
}
int main ()
{
int CreateBiTree(BiTree* bt);
int PreOrder(BiTree root);
BiNode a;
BiTree b;
b=&a;
CreateBiTree(&b);
PreOrder(&a);
return 0;
}
[解决办法]
其实C++也没什么难的,你把cout看成 printf ,cin 看成scanf就行了,前边的定义
#include<iostream>//C++的定义
#include<malloc.h>//动态开辟内存空间
#define NULL 0
using namespace std;//c++的定义