void CreateBTree(BTNode*& b, char* str)
{
BTNode* St[MAXSIZE];
int top = -1;
BTNode* p;
char ch = *str;
b = NULL;
int k;
while (ch != '\0')
{
switch (ch)
{
case'(':
St[++top] = p;
k = 1;
break;
case')':
top--;
break;
case',':
k = 2;
break;
default:
p = (BTNode*)malloc(sizeof(BTNode));
p->data = ch;
p->lchild = p->rchild = NULL;
if (b == NULL)
b = p;
else
{
switch (k)
{
case 1:St[top]->lchild = p; break;
case 2:St[top]->rchild = p; break;
}
break;
}
}
ch = *(++str);
}
}
void DispBTree(BTNode* b)
{
if (b != NULL)
{
printf("%c ", b->data);
if (b->lchild != NULL || b->rchild != NULL)
{
printf("(");
DispBTree(b->lchild);
if (b->rchild != NULL)
printf(",");
DispBTree(b->rchild);
printf(")");
}
}
}
标签:break,BTNode,top,表示法,括号,ch,二叉树,rchild,NULL
来源: https://www.cnblogs.com/KIROsola/p/12060700.html