Я пытаюсь создать дерево выражений, но не получаю соответствующий вывод.В этом коде я много раз пытался проверить ошибки в своем коде, но я не могу их найти.Пожалуйста, кто-нибудь, помогите мне устранить ошибку в этой программе.
#include<stdio.h>
#include<stdlib.h>
struct tree
{
char a;
struct tree *llink;
struct tree *rlink;
} *stack[20];
int top=0;
void push(struct tree* root)
{
stack[top]=root;
top++;
}
struct tree* pop()
{
return stack[top--];
}
void inorderdisplay(struct tree *temp)
{
if (temp!=NULL) {
inorderdisplay(temp->llink);
printf("%c ",temp->a);
inorderdisplay(temp->rlink);
}
}
int main()
{
int i;
struct tree *root;
char exp[100];
scanf("%s",exp);
for (i=0; exp[i]!='\0'; i++) {
root=(struct tree *)malloc(sizeof(struct tree));
root->a=exp[i];
root->llink=NULL;
root->rlink=NULL;
if( exp[i]>=65 && exp[i]<=90);
else {
root->llink=pop();
root->rlink=pop();
}
push(root);
}
inorderdisplay(stack[0]);
return 0;
}