void menu() { int op = -1; printf (" ------ Menu Principal ------\n"); printf ("\n1. Inserir no inicio"); printf ("\n2. Inserir no final"); printf ("\n3. Remover do inicio"); printf ("\n4. Remover do final"); printf ("\n5. Remover elemento"); printf ("\n6. Buscar elemento"); printf ("\n7. Imprimir tudo"); printf ("\n8. Somar todos"); printf ("\n\n\tOpcao: "); scanf ("%d", &op); if (op == 1) inserir_inicio(); else if (op == 2) inserir_fim(); else if (op == 3) remover_inicio(); else if (op == 4) remover_fim(); else if (op == 5) remover_qualquer(); else if (op == 6) buscar_elemento(); else if (op == 7) imprimir_tudo(); else if (op == 8) somar_tudo(); system ("cls"); }
void remover_qualquer() { Lista *auxAnterior = NULL; Lista *aux = cabeca; int numero; printf ("Entre com um valor a ser removido: "); scanf ("%d", &numero); while (aux != NULL && aux->num != numero) { auxAnterior = aux; aux = aux->prox; } if (auxAnterior == NULL) { remover_inicio(); } else if (aux != NULL) { auxAnterior->prox = aux->prox; printf ("\nNumero removido com sucesso! %d", aux->num); } else printf ("\nErro: numero nao encontrado!\nCertifique-se de ter entrado com o numero correto."); getch(); }
int main () { struct no * lista = NULL; //inicializacao da lista: lista vazia int opcao, elem; do { printf ("\n 1-inserir inicio 2-inserir final"); printf ("\n 3-remover inicio 4-remover final"); printf ("\n 5-imprimir lista 0-sair : "); scanf ("%d", &opcao); switch (opcao) { case 1: printf ( "\n***Inserindo no inicio da lista***"); printf ("\nValor a ser inserido: "); scanf ("%d", &elem); inserir_inicio (elem, &lista); imprimir (lista); break; case 2: printf ( "\n***Inserindo no final da lista***"); printf ("\nValor a ser inserido: "); scanf ("%d", &elem); inserir_final (elem, &lista); imprimir (lista); break; case 3: printf ( "\n***Removendo do inicio da lista***"); if (lista != NULL) { elem = remover_inicio (&lista); printf ("\nValor removido: %d ", elem); } else printf ("\nLista Vazia!"); imprimir (lista); break; case 4: printf ( "\n***Removendo do final da lista***"); if (lista != NULL) { elem = remover_final (&lista); printf ("\nValor removido: %d ", elem); } else printf ("\nLista Vazia!"); imprimir (lista); break; case 5: imprimir (lista); break; case 0: printf ("\nSaindo...."); break; default: printf ("\nOpcao Invalida!"); } } while (opcao != 0); system ("pause"); return (0); }
int main() { int i; //criar a &lista LISTA_DUPLAMENTE_LIGADA lista; criar(&lista); //inserir itens na &lista for (i = 0; i < 10; i++) { ITEM item; item.chave = i; item.valor = rand(); if (i%2==0) { inserir_inicio(&lista, &item); } else { inserir_fim(&lista, &item); } } imprimir(&lista); printf("---\n"); imprimir_inverso(&lista); printf("---\n"); { ITEM item; if (buscar(&lista, 8, &item)) { printf("encontrado: %d - %d\n---\n", item.chave, item.valor); } for (i = 0; i < 3; i++) { remover_inicio(&lista); } } // tenta inserir novo ITEM em posicao invalida ITEM item; item.chave = rand(); item.valor = 111; inserir_posicao(&lista, 9, &item); imprimir(&lista); printf("---\n"); // insere 5 itens no final da lista for (i = 0; i < 5; i++) { ITEM item; item.chave = rand(); item.valor = i; inserir_fim(&lista, &item); } imprimir(&lista); printf("---\n"); // remove 3 ultimos itens da lista for (i = 0; i < 3; i++) { remover_fim(&lista); } // remove o primeiro no remover_posicao(&lista, 0); imprimir(&lista); printf("---\n"); apagar_lista(&lista); return 0; }