funcionamiento de un pila

44
FUNCIONAMIENTO DE UN PILA Integrantes: Jefferson Arcos Oscar Ibarra

Upload: waferson

Post on 24-Jun-2015

295 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Funcionamiento de Un Pila

FUNCIONAMIENTO DE UN PILA

Integrantes: Jefferson Arcos

Oscar Ibarra

Page 2: Funcionamiento de Un Pila

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, First Output.

Page 3: Funcionamiento de Un Pila

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

Page 4: Funcionamiento de Un Pila

Función pila

NULL

sig.

dato

sig.

dato

sig.

dato

sig.

dato

inicio

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 salir

Page 5: Funcionamiento de Un Pila

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 pila Recorrer elemento de la pila

Page 6: Funcionamiento de Un 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

Page 7: Funcionamiento de Un Pila

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

Page 8: Funcionamiento de Un Pila

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)

InicioEstructura nodo *aux Si (vacía(&(*tope))) Entonces

Escribir " Pila Vacía." Sino

aux=*tope Escribir " Elemento eliminado: “, (*tope)->dato *tope=(*tope)->sig delete aux

FinFin

Page 9: Funcionamiento de Un Pila

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 MientrasFin

Fin

Page 10: Funcionamiento de Un Pila

Nuevas funciones para una pila

Page 11: Funcionamiento de Un 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

Page 12: Funcionamiento de Un Pila

Funcion Contar

Funcion 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

Page 13: Funcionamiento de Un Pila

Funcion Contar

Codificacion 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();}

Page 14: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Page 15: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

Page 16: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

int cont=0

Page 17: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

Int cont=1

Page 18: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

Int cont=2

Page 19: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

Int cont=3

Page 20: Funcionamiento de Un Pila

Funcion Contar

73

Tope

5

Aux

Codificacion 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();}

Int cont=3

“El numero de elementos en la pila es: 3”

Page 21: Funcionamiento de Un Pila

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

Page 22: Funcionamiento de Un Pila

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

Page 23: Funcionamiento de Un Pila

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();}

Page 24: Funcionamiento de Un Pila

Grafica de Promediar

7

Tope

float sum=0;

elem=0

Page 25: Funcionamiento de Un Pila

Grafica de Promediar

73

Tope

float sum=0;

elem=0

Page 26: Funcionamiento de Un Pila

Grafica de Promediar

73

Tope

5

elem=0 float sum=0;

Page 27: Funcionamiento de Un Pila

73

Tope

5

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();}

Aux

Grafica de Promediar

elem=0 float sum=0;

Page 28: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

elem=15 float sum=5;

Page 29: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

elem=25

3

float sum=8;

Page 30: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

elem=35

3

float sum=15;

7

Page 31: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

elem=35

3

float sum=15;

7

Prom

Page 32: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

elem=3float

sum=15;prom

Page 33: Funcionamiento de Un 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();}

73

Tope

5

Aux

Grafica de Promediar

prom 5

“El promedio de los elementos es: 5”

Page 34: Funcionamiento de Un Pila

Grafica de promediar

31er elemento

Page 35: Funcionamiento de Un Pila

Grafica de promediar

1er elemento Var cont.3

Page 36: Funcionamiento de Un Pila

Grafica de promediar

1er elemento 1 Var cont.3

Page 37: Funcionamiento de Un Pila

Grafica de promediar

2º elemento

1 Var cont.3

5

Page 38: Funcionamiento de Un Pila

Grafica de promediar

2do elemento

1 Var cont.3

5 2

Page 39: Funcionamiento de Un Pila

Grafica de promediar

3er elemento

1 Var cont.3

5 2

7 3

Page 40: Funcionamiento de Un Pila

Grafica de promediar

4to elemento

1

elementos son 4

3

5 2

7 3

9 4

Page 41: Funcionamiento de Un Pila

Grafica de promediar

La suma de elementos según la apilacion

13

5 2

7 3

9 4La suma de elementos según la apilacion elementos

son 4 los cuales se van a dividir según

el contador

Page 42: Funcionamiento de Un Pila

Grafica de promediar

13

5 2

7 3

9 4La suma de elementos según la apilacion elementos

son 4 los cuales se van a dividir según

el contador

Page 43: Funcionamiento de Un Pila
Page 44: Funcionamiento de Un Pila

Gracias