Faça um programa que leia duas sequências de nomes de pessoas e
armazene-os em duas listas simplesmente encadeadas L1 e L2,
respectivamente. Em seguida, o programa deve criar uma terceira lista encadeada, contendo os nomes comuns às duas listas e mostrar a lista resultante. Exemplo: - L1 = Joana, Laura, Sérgio, Fábio. - L2 = Anita, Joaquim, Fábio, Joana, Pedro, Sílvia. - L3 = Joana, Fábio.
strcpy(novo->nome, nome); novo->prox = NULL; // inserção no fim da lista if(l == NULL) l = novo; else{ aux = l; while(aux->prox != NULL) aux = aux->prox; aux->prox = novo; } return l; }
LISTA* desalocar(LISTA *L)
{ LISTA *aux; while(L != NULL) { aux = L; L = L->prox; delete(aux); } return NULL; } void main() { // a lista está vazia, logo, L1 e L2 terão o valor NULL // L1 e L2 conterão o endereço do primeiro elemento da lista LISTA *L1 = NULL; LISTA *L2 = NULL; LISTA *L3 = NULL; // os ponteiros novo e aux são auxiliares LISTA *aux1, *aux2; // apresentando o menu de opções int achou; char nome[40];
// Leitura dos números da 1ª lista
cout << "\n Lista 1 \n Digite um nome ('fim' para parar):"; gets(nome); while(strcmpi(nome,"fim")!=0) { L1 = inserir(L1, nome); cout << "\n Lista 1 \n Digite um nome ('fim' para parar):"; gets(nome); } // Leitura dos números da 2ª lista cout << "\n Lista 2 \n Digite um nome ('fim' para parar):"; gets(nome); while(strcmpi(nome,"fim")!=0) { L2 = inserir(L2, nome); cout << "\n Lista 2 \n Digite um nome ('fim' para parar):"; gets(nome); } // Criando a lista contendo os nomes em comum nas duas listas aux1 = L1; while(aux1 != NULL) { aux2 = L2; achou = 0; while(aux2 != NULL) { if(strcmpi(aux1->nome,aux2->nome)==0) { achou = 1; } aux2 = aux2->prox; } if(achou == 1) L3 = inserir(L3, aux1->nome); aux1 = aux1->prox; } // Impressão da lista em comum if(L3 == NULL) cout << "\n As listas não possuem nomes em comum."; else { cout << "\n Nomes presentes em ambas as listas: "; aux1 = L3; while(aux1 != NULL) { cout << "\n\t" << aux1->nome << " "; aux1 = aux1->prox; } } L1 = desalocar(L1); L2 = desalocar(L2); L3 = desalocar(L3); }
Crie seu mercado no mundo digital: Aprenda a viver de e-commerce com a estratégia que levou inúmeros negócios on-line a sair do zero e ultrapassar os R$ 100 mil em vendas por mês