我这样写出来运行中序打印是没有内容的,请问这是哪里错了
/*假设K1,K2....KN是N个关键字(字符型),使用二叉排序树表示这些关键词。
1.中序遍历
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct binode{
char data;
struct binode* lchild,* rchild;
}binode;
binode* insertnode(binode* root,char x){
binode* p=(binode*)malloc(sizeof(binode));
p->data=x;
p->lchild=NULL;
p->rchild=NULL;
if(!root) {
root=p;
}
else if(x< root->data){
root->lchild=insertnode(root->lchild,x);
}
else if(x> root->data){
root->rchild=insertnode(root->rchild,x);
}
return root;
}
binode* createbst(char *node,int n){
binode* p=(binode*)malloc(sizeof(binode));
p->data=node[0];
int i;
for(i=1;i<n;++i){
insertnode(p,node[i]);
}
return p;
}
void visit(binode* p){
if(p){
visit(p->lchild);
printf("%c ",p->data);
visit(p->rchild);
}
}
int main(){
int n,i;
scanf("%d",&n);
char node[n];
for(i=0;i<n;i++){
scanf(" %c",&node[i]);
}
binode* root=createbst(node,n);
visit(root);
return 0;
}