Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct arv {
- char info;
- struct arv* esq;
- struct arv* dir;
- };
- typedef struct arv Arv;
- const char * addArvore ( const char *c, Arv ** arvRet )
- {
- if(*c != '<')//tratamento de erro...
- else if(c[1] == '>'){
- *arvRet = NULL;
- return c + 2;
- }
- else{
- *arvRet = (Arv *)malloc(sizeof(Arv));
- memset(*arvRet, 0, sizeof(Arv));
- };
- c++;
- char atual = 'e';
- do while(TRUE){
- if(*c == '<'){
- if(atual == 'f')
- // TRATAMENTO DE ERRO: não deveria ter ocorrido
- else if(atual == 'e'){
- c = addArvore(c, &(*arvRet->esq));
- atual = 'd';
- }
- else if(atual == 'd'){
- c = addArvore(c, &(*arvRet->dir));
- atual = 'f';
- }
- }
- else if(*c == '>')
- return c + 1;
- else{
- *arvRet->info = *c;
- c++;
- }
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement