33,311
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}BTnode;
BTnode* CreateBiTree(BTnode *&T)
{
char ch;
cin >> ch;
if (ch == ' ')
return NULL;
else
{
T = (BTnode*)malloc(sizeof(BTnode));
T->data = ch;
T->lchild=CreateBiTree(T->lchild);
T->rchild=CreateBiTree(T->rchild);
return T;
}
}
void PreOrder(BTnode *b)
{
if (b != NULL)
{
cout << b->data;
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
int main()
{
BTnode *B = (BTnode*)malloc(sizeof(BTnode));
B=CreateBiTree(B);
PreOrder(B);
return 0;
}
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}BTnode;
BTnode* CreateBiTree(BTnode *&T)
{
char ch;
cin >>ch;
if (ch == '#') /*空格改成#*/
return NULL;
else
{
T = (BTnode*)malloc(sizeof(BTnode));
T->data = ch;
T->lchild=CreateBiTree(T->lchild);
T->rchild=CreateBiTree(T->rchild);
return T;
}
}
void PreOrder(BTnode *b)
{
if (b != NULL)
{
cout << b->data;
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
int main()
{
BTnode *B = (BTnode*)malloc(sizeof(BTnode));
B=CreateBiTree(B);
PreOrder(B);
return 0;
}
空格改成#,然后输入如下:
ABC##DE#G##F###
为什么不可以,主要是cin输入的问题,即cin不会将空格赋值给ch;