123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- #include "lista_n_ord.h"
- int imprime_op()
- {
- int op;
- do
- {
- printf("---------------- Qual a operacao? -----------------\n");
- printf(" [1] - Inserir um elemento à lista\n");
- printf(" [2] - Remover um elemento da lista\n");
- printf(" [3] - Remover todas as ocorrencias do elemento na lista\n");
- printf(" [4] - Inserir elemento no inicio da lista\n");
- printf(" [5] - Remover os elementos impares\n");
- printf(" [6] - Mostrar o menor elemento da lista\n");
- printf(" [7] - Quantidade de elementos da lista\n");
- printf(" [8] - Concatenar duas listas\n");
- printf(" [9] - Imprimir lista atual\n");
- printf("[10] - Sair do programa\n");
- printf("Operacao: "); setbuf(stdin,NULL);
- scanf("%d", &op);
- } while(op < 0 || op > 11);
- return op;
- }
- int imprime_op2()
- {
- int op;
- do
- {
- printf("---------------- Qual a operacao p/ 2da lista? -----------------\n");
- printf("(1) - Inserir um elemento à uma segunda lista\n");
- printf("(2) - Remover um elemento da segunda lista\n");
- printf("(3) - Imprimir a segunda lista\n");
- printf("(4) - Concatenar as duas listas\n");
- printf("(5) - Sair do programa da segunda lista\n");
- printf("Operacao: "); setbuf(stdin,NULL);
- scanf("%d", &op);
- } while(op < 0 || op > 11);
- }
- int main(void)
- {
- int elemento, op = -1, op2, op_lista = 0;
- Lista L1 = cria_lista();
- Lista L2 = cria_lista();
- system("clear");
- while(op != 10)
- {
- op = imprime_op();
- switch(op)
- {
- case 1:
- printf("Elemento a ser inserido: ");
- scanf("%d", &elemento);
- if(insere_elem(L1, elemento))
- printf("Elemento inserido!\n");
- else
- printf("Elemento nao inserido!\n");
- getchar();
- break;
- case 2:
- printf("Qual elemento sera removido? ");
- scanf("%d", &elemento);
- if(remove_elem(L1, elemento))
- printf("Elemento removido\n");
- else
- printf("Elemento nao removido\n");
- getchar();
- break;
- case 3:
- printf("Qual elemento sera removido em todas as ocorrencias? ");
- scanf("%d", &elemento);
- if(remove_todos(L1, elemento))
- printf("Elementos removidos!\n");
- else
- printf("Os elementos não foram removidos\n");
- break;
- case 4:
- printf("Qual elemento seria inserido no inicio da lista? ");
- scanf("%d", &elemento);
- if(insere_inicio(L1, elemento))
- printf("Elemento inserido no inicio!\n");
- else
- printf("Elemento nao foi inserido no inicio!\n");
- break;
- case 5:
- printf("Eliminando os elementos impares...\n");
- if(remover_impares(L1))
- printf("Imprima a lista para ver o resultado.\n");
- else
- printf("Erro!\n");
- break;
- case 6:
- printf("Capturando o menor elemento da lista...\n");
- menor_elem(L1);
- break;
- case 7:
- tamanho_lista(L1);
- break;
- case 8:
- printf("Não existe uma segunda lista para concatenar...\n");
- while((op2 = imprime_op2()) != 5)
- {
- switch(op2)
- {
- case 1:
- printf("Inserir em qual lista? ");
- scanf("%d", &op_lista);
- if(op_lista == 1)
- {
- printf("Elemento a ser inserido: ");
- scanf("%d", &elemento);
- if(insere_elem(L1, elemento))
- printf("Elemento inserido na lista 1\n");
- else
- printf("Elemento nao inserido!\n");
- }
- else if(op_lista == 2)
- {
- printf("Elemento a ser inserido: ");
- scanf("%d", &elemento);
- if(insere_elem(L2, elemento))
- printf("Elemento inserido na lista 2\n");
- else
- printf("Elemento nao inserido!\n");
- }
- else
- break;
- getchar();
- break;
- case 2:
- printf("Remover de qual lista? ");
- scanf("%d", &op_lista);
- if(op_lista == 1)
- {
- printf("Elemento a ser removido: ");
- scanf("%d", &elemento);
- if(remove_elem(L1, elemento))
- printf("Elemento removido da lista 1\n");
- else
- printf("Elemento nao removido!\n");
- }
- else if(op_lista == 2)
- {
- printf("Elemento a ser inserido: ");
- scanf("%d", &elemento);
- if(remove_elem(L2, elemento))
- printf("Elemento removido na lista 2\n");
- else
- printf("Elemento nao removido!\n");
- }
- else
- break;
- getchar();
- break;
- case 3:
- printf("Imprimir qual lista? ");
- scanf("%d", &op_lista);
- if(op_lista == 1)
- imprime_lista(L1);
- else if(op_lista == 2)
- imprime_lista(L2);
- else
- break;
- getchar();
- break;
- case 4:
- printf("Lista 3: "); imprime_lista(concatenar_lista(L1,L2));
- break;
- }
- setbuf(stdin,NULL);
- getchar();
- system("clear");
- }
- //else concatenar_lista(L1,L2);
- break;
- case 9:
- system("clear");
- imprime_lista(L1);
- break;
- }
- setbuf(stdin,NULL);
- if(op == 10)
- return 0;
- getchar();
- system("clear");
- }
- free(L1);
- free(L2);
- return 0;
- }
|