Guest User

Untitled

a guest
Dec 9th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. //Tarea corta numero 2 Listas, Pilas y Colas
  2. //Luis Antonio Castillo Morera
  3. //Carnet 201166632
  4.  
  5. #include <cstdlib>
  6. #include <iostream>
  7.  
  8. const int Maxar1=5;//constante de tamaño de lista 1
  9. const int Maxar2=5;//constante de tamaño de lista 2
  10. const int Maxar3=Maxar1+Maxar2;//constante de tamaño de lista union
  11. const int Maxp=15;// constante de tamaño de pila
  12. int Maxl=Maxar1;
  13.  
  14. using namespace std;
  15.  
  16. void llenar_lista(int lista[]);
  17. void Imprimir_lista(int lista[]);
  18. void List_union(int lista1[],int lista2[],int lista3[]);
  19. int Sizearr(int lista[]);
  20. int ElimElem_lista(int lista[], int curr);
  21. void comprobar(int lista[]);
  22. void Comprueba(int lista[],int x);
  23. int fibonacci(int n,int Pila[]);
  24. void Imprimir_Pila(int Pila[]);
  25.  
  26. int main(int argc, char *argv[]){ // Programa ejemplo
  27. int lista1[Maxar1]={1,2,3,4,8};// En un mismo conjunto no se puede
  28. int lista2[Maxar2]={2,4,3,6,5};// repetir el mismo numero
  29. int lista3[Maxar3];
  30. int Pila[Maxp];
  31. List_union(lista1,lista2,lista3);
  32. comprobar(lista3);
  33. cout<<"Lista unida: "<<endl;
  34. Imprimir_lista(lista3);
  35. cout<<endl;
  36. fibonacci(10,Pila);
  37. cout<<"Pila Sucesion Fibonacci: "<<endl;
  38. Imprimir_Pila(Pila);
  39. cout<<endl;
  40. system("PAUSE");
  41. return EXIT_SUCCESS;
  42. }
  43. // Funcion rellena listas
  44. void llenar_lista(int lista[]){
  45. int tama=(Maxar1);
  46. for (int x = 0; x < tama; x ++)
  47. {
  48. cout << "Orden " << x+1<<": ";
  49. cin >> lista[x];
  50. }
  51. }
  52. //Funcion imprime listas
  53. void Imprimir_lista(int lista[])
  54. {
  55. int x=0;
  56. while (x<Maxar1+Maxl)
  57. {
  58. cout<<lista[x]<<" ";
  59. x++;
  60. }
  61. }
  62. // Funcion une 2 listas
  63. void List_union(int lista1[],int lista2[],int lista3[])
  64.  
  65. {
  66. int i,j=0;
  67. for(i = 0; i < Maxar1+Maxar2; i++){
  68. if (i<Maxar1){
  69. lista3[i]=lista1[i];
  70. }
  71. else{
  72.  
  73. lista3[i]=lista2[j];
  74. j++;
  75. }
  76. }
  77. }
  78. //Funcion queda el numero de elementos de una lista
  79. int Sizearr(int lista[]){
  80. int i=Maxar1+Maxar2,cont=0;
  81. while (i!=0){
  82. cont++;
  83. i--;
  84. }
  85. return cont-1;
  86. }
  87. // Funcion que elimina un elemento de la lista dada una posicion
  88. int ElimElem_lista(int lista[],int curr)
  89. {
  90. int temp= lista[curr];
  91. int i = curr;
  92. while (i < Sizearr(lista)){
  93. lista[i]=lista[i+1];
  94. i++;}
  95. return temp;
  96. }
  97. // Funcion que comprueba si dado un elemento este se repite y lo elimina
  98. void Comprueba(int lista[],int x){
  99. int i;
  100. for (i=Maxar1;i <= Sizearr(lista); i++){
  101. if (lista[x]==lista[i]){
  102. Maxl--;
  103. ElimElem_lista(lista,i);
  104. }
  105.  
  106. }
  107. }
  108. //Funcion que comprueba si los elementos de una lista estan repetidos
  109. void comprobar(int lista[]){
  110. int i=0;
  111. while (i<Maxar1){
  112. Comprueba(lista,i);
  113. i++;
  114. }
  115. }
  116. //Imprime Una pila
  117. void Imprimir_Pila(int Pila[])
  118. {
  119. int x=0;
  120. while (x<=Sizearr(Pila))
  121. {
  122. cout<<Pila[x]<<" ";
  123. x++;
  124. }
  125. }
  126.  
  127. // Funcion Agrega a la pila en determinada posicion
  128. void agregar(int Pila[], int i, int pos){
  129. Pila[pos]=i;
  130. }
  131.  
  132. //Funcion calcula sucesion fibonacci: dados una pila,
  133. //y la cantidad de elementos que aparecerán en la pila
  134. int fibonacci(int n,int Pila[]){
  135. int i=0,j=1, cont=0;
  136. while (cont<n){
  137. i=i+j;
  138. agregar(Pila, i,cont);
  139. j=i-j;
  140. cont++;
  141. }
  142. return i;
  143. }
Add Comment
Please, Sign In to add comment