如何用广义表建树~

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:20:18
typedef char TElemType ;

typedef struct BTreeNode
{
TElemType data;
struct BTreeNode *Lchild,*Rchild; //左子树 右子树
}BiTNode, *BiTree; 树的结构体
怎么样用广义表建二叉树~

void CreateBiTree(BiTree *T,char *a)
{
BiTree s[10];
int j, k;
BiTree p;
int top=-1;
T=NULL;
printf("输入树共有多少个结点\n");
scanf("%d",&j);
s=(BiTree *)malloc(j*sizeof(BiTNode));
if(!s)
exit(OVERFLOW);
int i=0;
while(a[i]!='\0')
{
switch(a[i])
{
case ' ':
break;
case '(':
if(top==10)
{
printf("空间太小\n");
exit(1);
}
top++;
s[top]=p;
k=1;
break;
case ')':
if(top==-1)
{
printf("二叉树广义表字符串有错\n");
exit(-1);
}
top--;
break;
case ',':
k=2;
break;
default:

p=(BiTree)malloc(sizeof(BiTNode));
if(!p)
exit(OVERFLOW);

p->data=a[i];
p->Lchild=p->Rchild=NULL;