user.c 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #include "lista_encad.h"
  2. int imprime_op()
  3. {
  4. int op;
  5. do
  6. {
  7. printf("---------------- Qual a operacao? -----------------\n");
  8. printf(" [1] - Inserir um elemento à lista\n");
  9. printf(" [2] - Remover um elemento da lista\n");
  10. printf(" [3] - Remover todas as ocorrencias do elemento na lista\n");
  11. printf(" [4] - Inserir elemento no final da lista\n");
  12. printf(" [5] - Remover os elementos pares\n");
  13. printf(" [6] - Mostrar o maior elemento da lista\n");
  14. printf(" [7] - Quantidade de elementos da lista\n");
  15. printf(" [8] - Concatenar duas listas\n");
  16. printf(" [9] - Imprimir lista atual\n");
  17. printf("[10] - Sair do programa\n");
  18. printf("Operacao: "); setbuf(stdin,NULL);
  19. scanf("%d", &op);
  20. } while(op < 0 || op > 11);
  21. return op;
  22. }
  23. int imprime_op2()
  24. {
  25. int op;
  26. do
  27. {
  28. printf("---------------- Qual a operacao p/ 2da lista? -----------------\n");
  29. printf("(1) - Inserir um elemento à uma segunda lista\n");
  30. printf("(2) - Remover um elemento da segunda lista\n");
  31. printf("(3) - Imprimir a segunda lista\n");
  32. printf("(4) - Concatenar as duas listas\n");
  33. printf("(5) - Sair do programa da segunda lista\n");
  34. printf("Operacao: "); setbuf(stdin,NULL);
  35. scanf("%d", &op);
  36. } while(op < 0 || op > 11);
  37. }
  38. int main(void)
  39. {
  40. int elemento, op = -1, op2, op_lista = 0;
  41. Lista L1 = cria_lista();
  42. Lista L2 = cria_lista();
  43. system("clear");
  44. while(op != 10)
  45. {
  46. op = imprime_op();
  47. switch(op)
  48. {
  49. case 1:
  50. printf("Elemento a ser inserido: ");
  51. scanf("%d", &elemento);
  52. if(insere_elem(&L1, elemento))
  53. printf("Elemento inserido!\n");
  54. else
  55. printf("Elemento nao inserido!\n");
  56. getchar();
  57. break;
  58. case 2:
  59. printf("Qual elemento sera removido? ");
  60. scanf("%d", &elemento);
  61. if(remove_elem(&L1, elemento))
  62. printf("Elemento removido\n");
  63. else
  64. printf("Elemento nao removido\n");
  65. getchar();
  66. break;
  67. case 3:
  68. printf("Qual elemento sera removido em todas as ocorrencias? ");
  69. scanf("%d", &elemento);
  70. if(remove_todos(&L1, elemento))
  71. printf("Elementos removidos!\n");
  72. else
  73. printf("Os elementos não foram removidos\n");
  74. break;
  75. case 4:
  76. printf("Qual elemento seria inserido no inicio da lista? ");
  77. scanf("%d", &elemento);
  78. if(insere_final(&L1, elemento))
  79. printf("Elemento inserido no final!\n");
  80. else
  81. printf("Elemento nao foi inserido no final!\n");
  82. break;
  83. case 5:
  84. printf("Eliminando os elementos pares...\n");
  85. if(remove_pares(&L1))
  86. printf("Imprima a lista para ver o resultado.\n");
  87. else
  88. printf("Erro!\n");
  89. break;
  90. case 6:
  91. printf("Capturando o maior elemento da lista...\n");
  92. maior_elem_lista(&L1);
  93. break;
  94. case 7:
  95. tamanho_lista(&L1);
  96. break;
  97. case 8:
  98. printf("Não existe uma segunda lista para concatenar...\n");
  99. // while((op2 = imprime_op2()) != 5)
  100. // {
  101. // switch(op2)
  102. // {
  103. // case 1:
  104. // printf("Inserir em qual lista? ");
  105. // scanf("%d", &op_lista);
  106. // if(op_lista == 1)
  107. // {
  108. // printf("Elemento a ser inserido: ");
  109. // scanf("%d", &elemento);
  110. // if(insere_elem(L1, elemento))
  111. // printf("Elemento inserido na lista 1\n");
  112. // else
  113. // printf("Elemento nao inserido!\n");
  114. // }
  115. // else if(op_lista == 2)
  116. // {
  117. // printf("Elemento a ser inserido: ");
  118. // scanf("%d", &elemento);
  119. // if(insere_elem(L2, elemento))
  120. // printf("Elemento inserido na lista 2\n");
  121. // else
  122. // printf("Elemento nao inserido!\n");
  123. // }
  124. // else
  125. // break;
  126. // getchar();
  127. // break;
  128. // case 2:
  129. // printf("Remover de qual lista? ");
  130. // scanf("%d", &op_lista);
  131. // if(op_lista == 1)
  132. // {
  133. // printf("Elemento a ser removido: ");
  134. // scanf("%d", &elemento);
  135. // if(remove_elem(L1, elemento))
  136. // printf("Elemento removido da lista 1\n");
  137. // else
  138. // printf("Elemento nao removido!\n");
  139. // }
  140. // else if(op_lista == 2)
  141. // {
  142. // printf("Elemento a ser inserido: ");
  143. // scanf("%d", &elemento);
  144. // if(remove_elem(L2, elemento))
  145. // printf("Elemento removido na lista 2\n");
  146. // else
  147. // printf("Elemento nao removido!\n");
  148. // }
  149. // else
  150. // break;
  151. // getchar();
  152. // break;
  153. // case 3:
  154. // printf("Imprimir qual lista? ");
  155. // scanf("%d", &op_lista);
  156. //
  157. // if(op_lista == 1)
  158. // imprime_lista(L1);
  159. //
  160. // else if(op_lista == 2)
  161. // imprime_lista(L2);
  162. // else
  163. // break;
  164. // getchar();
  165. // break;
  166. // case 4:
  167. // printf("Lista 3: "); imprime_lista(concatenar_lista(L1,L2));
  168. // break;
  169. // }
  170. // setbuf(stdin,NULL);
  171. // getchar();
  172. // system("clear");
  173. // }
  174. //else concatenar_lista(L1,L2);
  175. break;
  176. case 9:
  177. system("clear");
  178. imprime_lista(L1);
  179. break;
  180. }
  181. setbuf(stdin,NULL);
  182. if(op == 10)
  183. return 0;
  184. getchar();
  185. system("clear");
  186. }
  187. free(L1);
  188. free(L2);
  189. return 0;
  190. }