Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.75 KB | None | 0 0
  1. struct arv {
  2.   char info;
  3.   struct arv* esq;
  4.   struct arv* dir;
  5. };
  6.  
  7. typedef struct arv Arv;
  8.  
  9. const char * addArvore ( const char *c, Arv ** arvRet )
  10. {
  11.     if(*c != '<')//tratamento de erro...
  12.     else if(c[1] == '>'){
  13.         *arvRet = NULL;
  14.         return c + 2;
  15.     }
  16.     else{
  17.         *arvRet = (Arv *)malloc(sizeof(Arv));
  18.         memset(*arvRet, 0, sizeof(Arv));
  19.     };
  20.     c++;
  21.     char atual = 'e';
  22.     do while(TRUE){
  23.         if(*c == '<'){
  24.             if(atual == 'f')
  25.                 // TRATAMENTO DE ERRO: não deveria ter ocorrido
  26.             else if(atual == 'e'){
  27.                 c = addArvore(c, &(*arvRet->esq));
  28.                 atual = 'd';
  29.             }
  30.             else if(atual == 'd'){
  31.                 c = addArvore(c, &(*arvRet->dir));
  32.                 atual = 'f';
  33.             }
  34.         }
  35.         else if(*c == '>')
  36.             return c + 1;
  37.         else{
  38.             *arvRet->info = *c;
  39.             c++;
  40.         }
  41.     };
  42. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement