#include"stdio.h"
#include<stdlib.h>
#include<malloc.h>
#define TElemType char
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
Status CreateBiTree(BiTree &T);
void Exchange(BiTree &bt);
void PreOrder(BiTNode &T);
void InOrder(BiTNode &T);
void Jundge(BiTNode &T);
//二叉链表定义
Status CreateBiTree(BiTree &T)
{
TElemType ch;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 0;
}
//建立存储结构
void Exchange(BiTree &bt)
{
BiTree temp;
if(bt)
{
temp=bt->lchild;
bt->lchild=bt->rchlid;
bt->rchild=temp;
Exchange(bt->lchild);
Exchange(bt->rchild);
}
}
//交换各个节点的左右子树
int main()
{
BiTNode* T=(BiTNode*)malloc(sizeof(BiTNode));
T=CreateBiTree(T);
Jundge(T);//交换前
Exchange(bt);
Jundge(T);//交换后
return 0;
}
void Jundge(BiTNode &T){
printf("---------------\n");
PreOrder(T);
printf("\n");
InOrder(T);
printf("\n");
}
void PreOrder(BiTNode &T){
if(T==NULL){
return 0;
}
printf("%c",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
//先序输出
void InOrder(BiTNode &T){
if(T==NULL){
return 0;
}
InOrder(T->lchild);
printf("%c",T->data);
InOrder(T->rchild);
}
//中序输出
错误:
Compiling...
Cpp1.cpp
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : error C2146: syntax error : missing ';' before identifier 'CreateBiTree'
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : error C2501: 'Status' : missing storage-class or type specifiers
C:\Users\Administrator\Desktop\Cpp1.cpp(9) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
Cpp1.obj - 3 error(s), 0 warning(s)
求解决方法
是头文件的问题吗?
VC++6.0编译环境