Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Tarea corta numero 2 Listas, Pilas y Colas
- //Luis Antonio Castillo Morera
- //Carnet 201166632
- #include <cstdlib>
- #include <iostream>
- const int Maxar1=5;//constante de tamaño de lista 1
- const int Maxar2=5;//constante de tamaño de lista 2
- const int Maxar3=Maxar1+Maxar2;//constante de tamaño de lista union
- const int Maxp=15;// constante de tamaño de pila
- int Maxl=Maxar1;
- using namespace std;
- void llenar_lista(int lista[]);
- void Imprimir_lista(int lista[]);
- void List_union(int lista1[],int lista2[],int lista3[]);
- int Sizearr(int lista[]);
- int ElimElem_lista(int lista[], int curr);
- void comprobar(int lista[]);
- void Comprueba(int lista[],int x);
- int fibonacci(int n,int Pila[]);
- void Imprimir_Pila(int Pila[]);
- int main(int argc, char *argv[]){ // Programa ejemplo
- int lista1[Maxar1]={1,2,3,4,8};// En un mismo conjunto no se puede
- int lista2[Maxar2]={2,4,3,6,5};// repetir el mismo numero
- int lista3[Maxar3];
- int Pila[Maxp];
- List_union(lista1,lista2,lista3);
- comprobar(lista3);
- cout<<"Lista unida: "<<endl;
- Imprimir_lista(lista3);
- cout<<endl;
- fibonacci(10,Pila);
- cout<<"Pila Sucesion Fibonacci: "<<endl;
- Imprimir_Pila(Pila);
- cout<<endl;
- system("PAUSE");
- return EXIT_SUCCESS;
- }
- // Funcion rellena listas
- void llenar_lista(int lista[]){
- int tama=(Maxar1);
- for (int x = 0; x < tama; x ++)
- {
- cout << "Orden " << x+1<<": ";
- cin >> lista[x];
- }
- }
- //Funcion imprime listas
- void Imprimir_lista(int lista[])
- {
- int x=0;
- while (x<Maxar1+Maxl)
- {
- cout<<lista[x]<<" ";
- x++;
- }
- }
- // Funcion une 2 listas
- void List_union(int lista1[],int lista2[],int lista3[])
- {
- int i,j=0;
- for(i = 0; i < Maxar1+Maxar2; i++){
- if (i<Maxar1){
- lista3[i]=lista1[i];
- }
- else{
- lista3[i]=lista2[j];
- j++;
- }
- }
- }
- //Funcion queda el numero de elementos de una lista
- int Sizearr(int lista[]){
- int i=Maxar1+Maxar2,cont=0;
- while (i!=0){
- cont++;
- i--;
- }
- return cont-1;
- }
- // Funcion que elimina un elemento de la lista dada una posicion
- int ElimElem_lista(int lista[],int curr)
- {
- int temp= lista[curr];
- int i = curr;
- while (i < Sizearr(lista)){
- lista[i]=lista[i+1];
- i++;}
- return temp;
- }
- // Funcion que comprueba si dado un elemento este se repite y lo elimina
- void Comprueba(int lista[],int x){
- int i;
- for (i=Maxar1;i <= Sizearr(lista); i++){
- if (lista[x]==lista[i]){
- Maxl--;
- ElimElem_lista(lista,i);
- }
- }
- }
- //Funcion que comprueba si los elementos de una lista estan repetidos
- void comprobar(int lista[]){
- int i=0;
- while (i<Maxar1){
- Comprueba(lista,i);
- i++;
- }
- }
- //Imprime Una pila
- void Imprimir_Pila(int Pila[])
- {
- int x=0;
- while (x<=Sizearr(Pila))
- {
- cout<<Pila[x]<<" ";
- x++;
- }
- }
- // Funcion Agrega a la pila en determinada posicion
- void agregar(int Pila[], int i, int pos){
- Pila[pos]=i;
- }
- //Funcion calcula sucesion fibonacci: dados una pila,
- //y la cantidad de elementos que aparecerán en la pila
- int fibonacci(int n,int Pila[]){
- int i=0,j=1, cont=0;
- while (cont<n){
- i=i+j;
- agregar(Pila, i,cont);
- j=i-j;
- cont++;
- }
- return i;
- }
Add Comment
Please, Sign In to add comment