void CreateBiTree(BiTree &T)
{//用广义表来创建并输入二叉树
int k;
char ch;
BiTNode p,q;
SqStack S;
CreateStack(S);
if(!(T=(BiTree)malloc(sizeof(BiTNode))))
{ printf("ERROR!\n");
return;
}
T->data=0;
T->LChild=NULL;
T->RChild=NULL;
ch=getchar();
while(ch!='#')
{ switch(ch)
{ case'(':PushStack(S,p);
k=1;
break;
case')':PopStack(S,q);
break;
case',':k=2;
break;
default:p.data=ch;
p.LChild=NULL;
p.RChild=NULL;
if(T->data==0)
T->data=ch;
else if(k==1)
(S.top-1)->LChild=&p;
else
(S.top-1)->RChild=&p;
}
ch=getchar();
}
}
广义表建树算法
最新推荐文章于 2022-05-01 18:00:03 发布