/* * Arquivo para teste das várias implementações de lista. * Operações possíveis: * - ii insere no início da lista * - if insere no final da lista * - io insere no início da lista * - ri remove o elemento no início da lista * - rf remove o elemento no final da lista * - rv remove o nó com valor * - vv verifica se a lista está vazia * - vo verifica se a lista está ordenada * - o ordena a lista * - x inverte a lista * - l libera a lista */ #include #include "lista_simples_cabeca.h" int main() { Lista l; char c, c1; int r, e; cria(&l); while (scanf ("%c", &c) != EOF) { switch (c) { case 'i': /* Inserções */ r = scanf ("%c %d", &c1, &e); if (r < 2) printf ("erro na entrada.\n"); else { switch (c1) { case 'i': insere_inicio(&l,e); break; case 'f': insere_fim(&l,e); break; case 'o': insere_ordenado(&l,e); break; default: printf ("erro na entrada.\n"); break; } exibe(&l); } break; case 'r': /* Remoções */ scanf ("%c", &c1); switch (c1) { case 'i': r = remove_inicio(&l,&e); break; case 'f': r = remove_fim(&l,&e); break; case 'v': r = scanf ("%d", &e); if (r < 1) printf ("erro na entrada.\n"); r = remove_valor(&l,e); break; default: r = 0; printf ("erro na entrada.\n"); break; } if (r == 0) printf("remoção sem sucesso\n"); else exibe(&l); break; case 'v': /* Verificações */ scanf ("%c", &c1); switch (c1) { case 'v': if (vazia(&l)) printf("lista vazia.\n"); else printf("lista com elementos.\n"); break; case 'o': if (vazia(&l)) printf("lista ordenada.\n"); else printf("lista não ordenada.\n"); default: r = 0; printf ("erro na entrada.\n"); break; } break; case 'o': ordena(&l); exibe(&l); break; case 'x': inverte(&l); exibe(&l); break; case 'l': libera(&l); exibe(&l); break; } } return 0; }