RS25 Postado Abril 13, 2011 Denunciar Share Postado Abril 13, 2011 Fazer uma função que compare se os caracteres de uma lista l1 e igual aos caracteres da lista l2Segue o que tentei fazer#include <stdio.h> #include <stdlib.h> typedef struct lista { int info; struct lista* prox; } Lista; Lista* lista_cria() { return NULL; } Lista* lista_insere (Lista* l, int i) { Lista* novo = (Lista*) malloc(sizeof(Lista)); novo->info = i; novo->prox = l; return novo; } void lista_imprime (Lista* l) { Lista* p; for (p = l; p != NULL; p = p->prox) printf("info = %d\n", p->info); } int igual (Lista* l1, Lista*l2) { Lista* p1; Lista* p2; for (p1 = l1,p2=l2; p1 != NULL&& p2 != NULL; p1 = p1->prox,p2=p2->prox) { if (p1->info != p2->info) return 0; } return p1==p2; } Lista* lista_libera (Lista* l) { Lista* p = l; while (p != NULL) { Lista* t = p->prox; free(p); p = t; } return NULL; } main() { Lista* l; Lista* l2; int n; l = lista_cria(); l = lista_insere(l, 23); l = lista_insere(l, 45); l = lista_insere(l, 67); l = lista_insere(l, 89); l = lista_insere(l, 1011); printf("\nLista original:\n"); lista_imprime(l); l2 = lista_insere(l, 30); l2 = lista_insere(l, 44); l2 = lista_insere(l, 69); l2 = lista_insere(l, 90); l2 = lista_insere(l, 1013); printf("\nLiberando a memoria...\n"); l = lista_libera(l); printf("\nVerifica se os caracteres são iguais:\n"); igual(l1,l2); getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Abril 16, 2011 Denunciar Share Postado Abril 16, 2011 (editado) Saudações,Corriga os seguintes pontos no seu código:- Nas chamadas da função "lista_insere" para a Lista 2 ("l2")- Você está liberando a memória (uso da função "lista_libera") antes da comparação (uso da função "igual").- Na função "igual" mude o retorno de "return p1==p2;" para "return 1;".PS.: Você realmente tentou ou copiou esse código da Web?Abraços,William Rodrigues. Editado Abril 16, 2011 por William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RS25
Fazer uma função que compare se os caracteres de uma lista l1 e igual aos caracteres da lista l2
Segue o que tentei fazer
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.