Dsaraki Postado Outubro 28, 2012 Denunciar Share Postado Outubro 28, 2012 Pessoal preciso de desenvolver um programa que usa uma arvore binária para decodificar codigo morse, fiz a seguinte função:void ArvDecodifica (Arv *a, char *cod[]) //passo como parâmetro a arvore para decodificar e a string com o codigo da palavra{ char palavra[40]; //cria uma string para armazenar a palavra que sera decodificada Arv *p = (Arv*) malloc(sizeof(Arv)); p = a; int i,j; i=j=0; while (c!= '') //enquanto ainda for codigo { while(c!=' ')//enquanto não tiver espaço continua na mesma arvore { if(c == '.' ) p=p->esq; else p=p->dir; i++; }//o while vai parar quando achar o espaço, que indica a mudança de letra, nesse momento o p vai estar em alguma letra da arvore palavra[j]=p->info;//a string vai receber a letra onde o p está j++;//incremento para gravar a proxima letra da palavra p=a;// volta a raiz da árvore para que se possa achar a próxima letra } palavra[j]=''; printf("A palavra é:"); puts(palavra);//imprime a palavra decodificada}Estou usando a seguinte arvore: Arv* h = cria('h', NULL, NULL); /* sub-árvore com 'h' */ Arv* v = cria('v', NULL, NULL); /* sub-árvore com 'v' */ Arv* f = cria('f', NULL, NULL); /* sub-árvore com 'f' */ Arv* l = cria('l', NULL, NULL); /* sub-árvore com 'l' */ Arv* p = cria('p', NULL, NULL); /* sub-árvore com 'p' */ Arv* j = cria('j', NULL, NULL); /* sub-árvore com 'j' */ Arv* b = cria('b', NULL, NULL); /* sub-árvore com 'b' */ Arv* x = cria('x', NULL, NULL); /* sub-árvore com 'x' */ Arv* c = cria('c', NULL, NULL); /* sub-árvore com 'c' */ Arv* y = cria('y', NULL, NULL); /* sub-árvore com 'y' */ Arv* z = cria('z', NULL, NULL); /* sub-árvore com 'z' */ Arv* q = cria('q', NULL, NULL); /* sub-árvore com 'q' */ Arv* s = cria('s', h, v); /* sub-árvore com 's' */ Arv* u = cria('u', f, NULL); /* sub-árvore com 'u' */ Arv* r = cria('r', l, NULL); /* sub-árvore com 'r' */ Arv* w = cria('w', p, j); /* sub-árvore com 'w' */ Arv* d = cria('d', b, x); /* sub-árvore com 'd' */ Arv* k = cria('k', c, y); /* sub-árvore com 'k' */ Arv* g = cria('g', z, q); /* sub-árvore com 'g' */ Arv* o = cria('o', NULL, NULL); /* sub-árvore com 'o' */ Arv* i = cria('i', s, u); /* sub-árvore com 'i' */ Arv* a = cria('a', r, w); /* sub-árvore com 'a' */ Arv* n = cria('n', d, k); /* sub-árvore com 'n' */ Arv* m = cria('m', g, o); /* sub-árvore com 'm' */ Arv* e = cria('e', i, a); /* sub-árvore com 'e' */ Arv* t = cria('t', n, m); /* sub-árvore com 't' */ Arv* raiz= cria(' ', e, t); /* raiz da árvore */Porem quando eu mando compilar da um erro , o compilador fecha e a função para, alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jeisonmp Postado Outubro 28, 2012 Denunciar Share Postado Outubro 28, 2012 Se puder, coloque o código completo e entre ['code'] ['/code'] (Obs: sem as aspas simples)Att,jeisonmp Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Dsaraki
Pessoal preciso de desenvolver um programa que usa uma arvore binária para decodificar codigo morse, fiz a seguinte função:
void ArvDecodifica (Arv *a, char *cod[]) //passo como parâmetro a arvore para decodificar e a string com o codigo da palavra
{
char palavra[40]; //cria uma string para armazenar a palavra que sera decodificada
Arv *p = (Arv*) malloc(sizeof(Arv));
p = a;
int i,j;
i=j=0;
while (c!= '') //enquanto ainda for codigo
{
while(c!=' ')//enquanto não tiver espaço continua na mesma arvore
{
if(c == '.' )
p=p->esq;
else
p=p->dir;
i++;
}//o while vai parar quando achar o espaço, que indica a mudança de letra, nesse momento o p vai estar em alguma letra da arvore
palavra[j]=p->info;//a string vai receber a letra onde o p está
j++;//incremento para gravar a proxima letra da palavra
p=a;// volta a raiz da árvore para que se possa achar a próxima letra
}
palavra[j]='';
printf("A palavra é:");
puts(palavra);//imprime a palavra decodificada
}
Estou usando a seguinte arvore:
Arv* h = cria('h', NULL, NULL); /* sub-árvore com 'h' */
Arv* v = cria('v', NULL, NULL); /* sub-árvore com 'v' */
Arv* f = cria('f', NULL, NULL); /* sub-árvore com 'f' */
Arv* l = cria('l', NULL, NULL); /* sub-árvore com 'l' */
Arv* p = cria('p', NULL, NULL); /* sub-árvore com 'p' */
Arv* j = cria('j', NULL, NULL); /* sub-árvore com 'j' */
Arv* b = cria('b', NULL, NULL); /* sub-árvore com 'b' */
Arv* x = cria('x', NULL, NULL); /* sub-árvore com 'x' */
Arv* c = cria('c', NULL, NULL); /* sub-árvore com 'c' */
Arv* y = cria('y', NULL, NULL); /* sub-árvore com 'y' */
Arv* z = cria('z', NULL, NULL); /* sub-árvore com 'z' */
Arv* q = cria('q', NULL, NULL); /* sub-árvore com 'q' */
Arv* s = cria('s', h, v); /* sub-árvore com 's' */
Arv* u = cria('u', f, NULL); /* sub-árvore com 'u' */
Arv* r = cria('r', l, NULL); /* sub-árvore com 'r' */
Arv* w = cria('w', p, j); /* sub-árvore com 'w' */
Arv* d = cria('d', b, x); /* sub-árvore com 'd' */
Arv* k = cria('k', c, y); /* sub-árvore com 'k' */
Arv* g = cria('g', z, q); /* sub-árvore com 'g' */
Arv* o = cria('o', NULL, NULL); /* sub-árvore com 'o' */
Arv* i = cria('i', s, u); /* sub-árvore com 'i' */
Arv* a = cria('a', r, w); /* sub-árvore com 'a' */
Arv* n = cria('n', d, k); /* sub-árvore com 'n' */
Arv* m = cria('m', g, o); /* sub-árvore com 'm' */
Arv* e = cria('e', i, a); /* sub-árvore com 'e' */
Arv* t = cria('t', n, m); /* sub-árvore com 't' */
Arv* raiz= cria(' ', e, t); /* raiz da árvore */
Porem quando eu mando compilar da um erro , o compilador fecha e a função para, alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.