看看这个程序
#include "stdio.h"#include<stdlib.h>
struct node{
char data;
struct node*left;
struct node*right;
};
void print(struct node*bt)
{
if(bt){
printf("%c",bt->data);
print(bt->left);
print(bt->right);
}
}
void create(struct node**bt,char*s)
{
int i=0,top=-1,k;
struct node*st[20];
struct node*p;
*bt=NULL;
while(s[i]) {
switch(s[i]) {
case' ':
break;
case'(':
top++;
st[top]=p;
k=1;
break;
case')':
top--;
break;
case',':
k=2;
break;
defalut:
p=malloc(sizeof(struct node));
if(!p) {
printf("error\n");
exit(1);
}
p->data=s[i];
p->left=p->right=NULL;
if(!*bt)
*bt=p;
else {
if(k==1)
st[top]->left=p;
else
st[top]->right=p;
}
}
i++;/*扫描下一字符*/
}
}
main()
{
struct node*bt;
char s[20];
scanf("%s",s);
create(&bt,s);
print(bt);
}
这个程序是想用广义表建立一个二叉树,输出他,但是没有结果显示.