建立二叉树的二叉链的存储结构
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node
{
char Data;
struct Node* LChild;
struct Node* RChild;
}BiTNode,*PBiTNode;
void CreateBiTree(PBiTNode *bt)
{
char ch;
while(1)
{
ch=getchar();
if(ch=='\n')
{
break;
}
else if(ch=='(') //一个左括号就新创建一个左子树。
{
CreateBiTree(&((*bt)->LChild));
CreateBiTree(&((*bt)->RChild)); //(*bt)一定要打括号
}
else if((ch>='A'&&ch<='Z')||ch=='#')
{
(*bt)=(PBiTNode)malloc(sizeof(BiTNode));
(*bt)->Data=ch;
(*bt)->LChild=NULL;
(*bt)->RChild=NULL;
}
else
return; //,和)直接return就好了
}
return;
}
void print(PBiTNode bt)
{
if(bt!=NULL)
{
printf("%c",bt->Data);
print(bt->LChild);
print(bt->RChild);
}
return;
}
int main()
{
PBiTNode bt;
CreateBiTree(&bt); //创建是要写取地址符的。
print(bt);
printf("\n");
return 0;
}