FUNCIONAMIENTO DE UN PILA Integrantes: Jefferson Arcos Oscar Ibarra
Definición PILA Una pila es una estructura de datos en la que la inserción y la extracción de elementos se realiza sólo por un extremo que se denomina cabeza. como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. es decir, el último elemento que se metió en la pila será el primero en salir de ella en ingle denominada (LIFO) Last lnput, FirstOutput.
Mecanismo de una PILA   Una pila tiene como principal mecanismo ciertas partes que conforman la pila las cuales son:El tope La estructura de nodo PILA La variable aux La variable dato
Función pila datosig.iniciodatosig.    El inicio tendrá la tarea de apuntar aun valor nulo para que el apuntador siguiente tendrá que apuntar al dato para ser ingresado y pueda continuar el mecanismo de una pila por lo cual cumplirá el concepto de último en entrar, primero en salirdatosig.datoNULLsig.
Operaciones de una pila    La operaciones que realiza una pila son  formas por la cual cumple ciertas funciones para la operación de una pila la cuales son Inicializar pila Insertar elemento de la pila Eliminar elemento de la pilaRecorrer  elemento de la pila
Función iniciar PILA    Esta función permite iniciar la pila ya que se encuentra la estructura nodo pila la cual esta compuesta por un dato tipo entero y un puntero siguiente  por lo tanto la función declarada como Función iniciar pila(nodo **tope )   El tope estará apuntando a un valor nulo (NULL)    Al ingresar una dato el tope estará apuntando a un puntero denominado dato ,siguiente
Función insertar o apilar Elemento    Al insertar una elemento en la pila el mecanismo de insertar será de la siguiente forma:Función apilar  (Estructura nodo **tope, Entero dat)Inicio Estructura nodo *aux 	aux=new nodo 	Si (aux=NULL) Entonces		Escribir "Memoria Insuficiente" 	Fin 	aux->dato=dat   	aux->sig=*tope 	*tope=aux Fin
Función eliminar o desapilar un elemento      Es función permite eliminar  un elemento de una pila y su función será de la forma:Función desapilar(Estructura nodo **tope)Inicio	Estructura nodo *aux 	Si (vacía(&(*tope))) Entonces		Escribir " Pila Vacía." Sinoaux=*tope 		Escribir " Elemento eliminado: “, (*tope)->dato *tope=(*tope)->sig 		delete aux FinFin
Función recorrer elementos de una pila      Esta función permite que saber los elemento que están almacenado en la pila y además permite saber le espacio de memoria dinámica,  y su forma es de la siguiente manera:InicioEstructura nodo *aux 	Si (vacia(&(*tope))) Entonces		Escribir "Pila Vacía. " 	sino		aux=*tope 		Mientras(aux!=NULL)			Escribir " Dato: ", aux->dato 			aux=aux->sig 		Fin Mientras	FinFin
Nuevas funciones para una pila
Funcion contar elementos     Esta función permite contar todos los elemento de una pila  lo cual se diferencia de la función recorrer por lo que se implementa un contador en la cual se implemento la siguiente función
Funcion ContarFuncion contar. Nombre: Contar Utilidad: Cuenta los elmentos que hay en una pila. Pre: p={}       p={e1,e2,e3...en} Post: Pila vacia         Numero de elmentos = e
Funcion ContarCodificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;       while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();}
Funcion ContarTope735Aux
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;       while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();} Aux
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;       while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();} Auxintcont=0
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;       while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;  getch();} AuxIntcont=1
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();} AuxIntcont=2
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++;            }     }  cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();} AuxIntcont=3
Funcion ContarTope735Codificacion void contar(struct nodoPila **tope) {struct nodoPila *aux;  int cont=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else     {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++;            }     }cout<<”\nEl numero de elmentos en la pila es:”<<cont;    getch();} AuxIntcont=3“El numero de elementos en la pila es: 3”
Función promedio  de los elementos en una pila     Esta función permite  obtener un promedio de los elemento que puede ser de un tipo  float o decimal para su funcionamiento tendrá como variantes el contador de elementos, una suma , una división que actuara como divisor el contador que almacenara los elementos y su forma de trabajo es de la siguiente manera
Función promediar elementos en una pila Función promediarNombre: promediar Utilidad: Hacer el promedio de los datos de una pila. Pre: p={}       p={e1,e2,e3...en} Post: Pila vacía         El promedio de los datos es = e
funcionamiento de promediar elementos en una pila Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;           aux=aux->sig;           elem++;        }  prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}
Grafica de PromediarTope7float sum=0;elem=0
Grafica de PromediarTope73float sum=0;elem=0
Grafica de PromediarTope735float sum=0;elem=0
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;           aux=aux->sig;           elem++;        }  prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediarfloat sum=0;elem=0
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;           aux=aux->sig;           elem++;        }  prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediar5float sum=5;elem=1
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;           aux=aux->sig;           elem++;        }  prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediar35float sum=8;elem=2
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;           aux=aux->sig;           elem++;        }  prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediar735float sum=15;elem=3
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig;           elem++;        }prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediar735float sum=15;elem=3Prom
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig;           elem++;        }prom=(sum/elem);   cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediarpromfloat sum=15;elem=3
Tope735Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux;  int elem=0;  float prom=0, sum=0;  if(*tope==NULL)     {cout<<"\nPila Vacia. ";     }  else    {aux=*tope;      while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig;           elem++;        }  prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom;    }    getch();}AuxGrafica de Promediarprom5“El promedio de los elementos es: 5”
Grafica de promediar31er elemento
Grafica de promediar1er elementoVar cont.3
Grafica de promediar1er elementoVar cont.31
Grafica de promediar2º elemento5Var cont.31
Grafica de promediar2do elemento52Var cont.31
Grafica de promediar3er elemento7352Var cont.31
Grafica de promediar4to elemento elementos son 494735231
Grafica de promediarLa suma de elementos según la apilacion 9La suma de elementos según la apilacion  elementos son 4 los cuales se van a dividir según el contador4735231
Grafica de promediar9La suma de elementos según la apilacion  elementos son 4 los cuales se van a dividir según el contador4735231
Gracias

7

  • 1.
    FUNCIONAMIENTO DE UNPILA Integrantes: Jefferson Arcos Oscar Ibarra
  • 2.
    Definición PILA Unapila es una estructura de datos en la que la inserción y la extracción de elementos se realiza sólo por un extremo que se denomina cabeza. como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. es decir, el último elemento que se metió en la pila será el primero en salir de ella en ingle denominada (LIFO) Last lnput, FirstOutput.
  • 3.
    Mecanismo de unaPILA Una pila tiene como principal mecanismo ciertas partes que conforman la pila las cuales son:El tope La estructura de nodo PILA La variable aux La variable dato
  • 4.
    Función pila datosig.iniciodatosig. El inicio tendrá la tarea de apuntar aun valor nulo para que el apuntador siguiente tendrá que apuntar al dato para ser ingresado y pueda continuar el mecanismo de una pila por lo cual cumplirá el concepto de último en entrar, primero en salirdatosig.datoNULLsig.
  • 5.
    Operaciones de unapila La operaciones que realiza una pila son formas por la cual cumple ciertas funciones para la operación de una pila la cuales son Inicializar pila Insertar elemento de la pila Eliminar elemento de la pilaRecorrer elemento de la pila
  • 6.
    Función iniciar PILA Esta función permite iniciar la pila ya que se encuentra la estructura nodo pila la cual esta compuesta por un dato tipo entero y un puntero siguiente por lo tanto la función declarada como Función iniciar pila(nodo **tope ) El tope estará apuntando a un valor nulo (NULL) Al ingresar una dato el tope estará apuntando a un puntero denominado dato ,siguiente
  • 7.
    Función insertar oapilar Elemento Al insertar una elemento en la pila el mecanismo de insertar será de la siguiente forma:Función apilar (Estructura nodo **tope, Entero dat)Inicio Estructura nodo *aux aux=new nodo Si (aux=NULL) Entonces Escribir "Memoria Insuficiente" Fin aux->dato=dat aux->sig=*tope *tope=aux Fin
  • 8.
    Función eliminar odesapilar un elemento Es función permite eliminar un elemento de una pila y su función será de la forma:Función desapilar(Estructura nodo **tope)Inicio Estructura nodo *aux Si (vacía(&(*tope))) Entonces Escribir " Pila Vacía." Sinoaux=*tope Escribir " Elemento eliminado: “, (*tope)->dato *tope=(*tope)->sig delete aux FinFin
  • 9.
    Función recorrer elementosde una pila Esta función permite que saber los elemento que están almacenado en la pila y además permite saber le espacio de memoria dinámica, y su forma es de la siguiente manera:InicioEstructura nodo *aux Si (vacia(&(*tope))) Entonces Escribir "Pila Vacía. " sino aux=*tope Mientras(aux!=NULL) Escribir " Dato: ", aux->dato aux=aux->sig Fin Mientras FinFin
  • 10.
  • 11.
    Funcion contar elementos Esta función permite contar todos los elemento de una pila lo cual se diferencia de la función recorrer por lo que se implementa un contador en la cual se implemento la siguiente función
  • 12.
    Funcion ContarFuncion contar. Nombre:Contar Utilidad: Cuenta los elmentos que hay en una pila. Pre: p={} p={e1,e2,e3...en} Post: Pila vacia Numero de elmentos = e
  • 13.
    Funcion ContarCodificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();}
  • 14.
  • 15.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} Aux
  • 16.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} Auxintcont=0
  • 17.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} AuxIntcont=1
  • 18.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} AuxIntcont=2
  • 19.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++; } } cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} AuxIntcont=3
  • 20.
    Funcion ContarTope735Codificacion void contar(structnodoPila **tope) {struct nodoPila *aux; int cont=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope;while(aux!=NULL){aux=aux->sig;cont++; } }cout<<”\nEl numero de elmentos en la pila es:”<<cont; getch();} AuxIntcont=3“El numero de elementos en la pila es: 3”
  • 21.
    Función promedio de los elementos en una pila Esta función permite obtener un promedio de los elemento que puede ser de un tipo float o decimal para su funcionamiento tendrá como variantes el contador de elementos, una suma , una división que actuara como divisor el contador que almacenara los elementos y su forma de trabajo es de la siguiente manera
  • 22.
    Función promediar elementosen una pila Función promediarNombre: promediar Utilidad: Hacer el promedio de los datos de una pila. Pre: p={} p={e1,e2,e3...en} Post: Pila vacía El promedio de los datos es = e
  • 23.
    funcionamiento de promediarelementos en una pila Codificacion.void promediar(struct nodoPila **tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato; aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}
  • 24.
  • 25.
  • 26.
  • 27.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato; aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediarfloat sum=0;elem=0
  • 28.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato; aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediar5float sum=5;elem=1
  • 29.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato; aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediar35float sum=8;elem=2
  • 30.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato; aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediar735float sum=15;elem=3
  • 31.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig; elem++; }prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediar735float sum=15;elem=3Prom
  • 32.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig; elem++; }prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediarpromfloat sum=15;elem=3
  • 33.
    Tope735Codificacion.void promediar(struct nodoPila**tope){struct nodoPila *aux; int elem=0; float prom=0, sum=0; if(*tope==NULL) {cout<<"\nPila Vacia. "; } else {aux=*tope; while(aux!=NULL){sum=sum+aux->dato;aux=aux->sig; elem++; } prom=(sum/elem); cout<<"\nEl promedio de los elementos es: <<prom; } getch();}AuxGrafica de Promediarprom5“El promedio de los elementos es: 5”
  • 34.
  • 35.
    Grafica de promediar1erelementoVar cont.3
  • 36.
    Grafica de promediar1erelementoVar cont.31
  • 37.
    Grafica de promediar2ºelemento5Var cont.31
  • 38.
    Grafica de promediar2doelemento52Var cont.31
  • 39.
    Grafica de promediar3erelemento7352Var cont.31
  • 40.
    Grafica de promediar4toelemento elementos son 494735231
  • 41.
    Grafica de promediarLasuma de elementos según la apilacion 9La suma de elementos según la apilacion elementos son 4 los cuales se van a dividir según el contador4735231
  • 42.
    Grafica de promediar9Lasuma de elementos según la apilacion elementos son 4 los cuales se van a dividir según el contador4735231
  • 44.