user.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. #include "lista_n_ord.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 inicio da lista\n");
  12. printf(" [5] - Remover os elementos impares\n");
  13. printf(" [6] - Mostrar o menor 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_inicio(L1, elemento))
  79. printf("Elemento inserido no inicio!\n");
  80. else
  81. printf("Elemento nao foi inserido no inicio!\n");
  82. break;
  83. case 5:
  84. printf("Eliminando os elementos impares...\n");
  85. if(remover_impares(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 menor elemento da lista...\n");
  92. menor_elem(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. if(op_lista == 1)
  157. imprime_lista(L1);
  158. else if(op_lista == 2)
  159. imprime_lista(L2);
  160. else
  161. break;
  162. getchar();
  163. break;
  164. case 4:
  165. printf("Lista 3: "); imprime_lista(concatenar_lista(L1,L2));
  166. break;
  167. }
  168. setbuf(stdin,NULL);
  169. getchar();
  170. system("clear");
  171. }
  172. //else concatenar_lista(L1,L2);
  173. break;
  174. case 9:
  175. system("clear");
  176. imprime_lista(L1);
  177. break;
  178. }
  179. setbuf(stdin,NULL);
  180. if(op == 10)
  181. return 0;
  182. getchar();
  183. system("clear");
  184. }
  185. free(L1);
  186. free(L2);
  187. return 0;
  188. }