URI Question 1463 in C, I can not identify the problem in the code

1

I am trying to solve Question 1463 of the Online Judge URI, link: link However I get the message of 100% error or timeout exceeded, could someone show me what would be wrong in the code below?

#include <stdio.h>
#include <stdlib.h>
typedef struct node{
 char letra;
 struct node *esq;
 struct node *dir;
}Arvore;

Arvore* Insere(Arvore *raiz,char letra){
if(raiz == NULL){
    Arvore *nova = (Arvore*) malloc(sizeof(Arvore));
    nova->dir = NULL;
    nova->esq = NULL;
    nova->letra = letra;    
    return nova;
}
else if(raiz->esq == NULL){
    char temp = raiz->letra;
    raiz->letra = letra;
    raiz->esq = Insere(raiz->esq,temp);
}
else if(raiz->dir == NULL){
    raiz->dir = Insere(raiz->dir,letra);
}
else{
    Arvore *nova_raiz = (Arvore*) malloc(sizeof(Arvore));
    nova_raiz->dir = NULL;
    nova_raiz->esq = raiz;
    nova_raiz->letra = letra;
    return nova_raiz;
 }
}

printGivenLevel(Arvore* node, int level){
if (node == NULL)
    return;
if (level == 1)
    printf(" %c", node->letra);
else if (level > 1)
{
    printGivenLevel(node->esq, level-1);
    printGivenLevel(node->dir, level-1);
 }
}

 int altura (Arvore *node) {
  if (node == NULL) 
    return -1; 
  else {
    int Altura_esq = altura (node->esq);
    int Altura_dir = altura (node->dir);
    if (Altura_esq < Altura_dir){
     return Altura_dir + 1;
    }
    else{
      return Altura_esq + 1;
    }
  }
 }

int main(){
Arvore *raiz = NULL;
int i,altura_arv;
char letra,letra2;
while(scanf("%c",&letra)){
    fflush(stdin);
    if(letra == ' ' || letra == '\n'){
        continue;
    }
    else if(letra != '('){
        //printf("Entrou\n");
        raiz = Insere(raiz,letra);
    }
    else{
        //printf("Entrou2\n");
        scanf("%c",&letra2);
        fflush(stdin);
        raiz->dir = Insere(raiz->dir,letra2);
    }
    if(letra == EOF){
        altura_arv = altura(raiz);
        for(i=0;i<altura_arv;i++){
            printf("Nivel %d:",i);
            printGivenLevel(raiz,i+1);
            printf("\n");
        }
        raiz = NULL;
    }   
}

}
    
asked by anonymous 07.11.2017 / 22:48

0 answers