Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSantiago Minjarez Modificado hace 9 años
1
Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos
2
Pila Definición Una pila es una secuencia de elementos de un tipo base, el último elemento se le llama tope. En una pila sólo se puede adicionar al tope y solo se puede retirar de él.
3
Pila Definición TDA Pila Descripción: Una pila es una secuencia de elementos de un tipo base, el último elemento se le llama tope. En una pila solo se puede adicionar al tope y solo se puede retirar de él. Invariante: Pila= л ( i, 0 <= i < n, elem i Tipo) л elem n-1 = tope
4
Pila Operaciones: Pila (Constructor) Push Pop Imprimir pila Buscar elemento en la pila Es una pila vacía?
5
Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza 90 51 dato siguiente dato Siguiente(NULL) Tope de la pila Pila
6
Operación: push Insertar un nuevo nodo a la pila. El elemento que se inserta, pasa a ser el tope de la pila dato siguiente 23 90 51 dato siguiente dato Siguiente(NULL) Tope de la pila Pila
7
Operación: pop Eliminar un elemento de la pila. El elemento que se elimina es el que esté en el tope. 90 51 dato siguiente dato Siguiente(NULL) Tope de la pila Pila
8
Imprimir pila Recorre toda la pila, comenzando por el tope, y muestra el elemento de cada nodo Buscar elemento en la pila Es una pila vacía?
9
Pila (Constructor) Al crear una pila, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. Pila
10
Push ( La Pila está vacía ) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado23 Pila
11
Push( La pila no está vacía ) Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando23 51 23 Pila
12
Pop Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo 51 23 23 Pila
13
Imprimir datos Pila
14
Está una pila vacía? Cuando la pila está vacía el campo siguiente de la cabecera es null Pila
15
Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) { dato=o; siguiente=null; } Nodo(Object o, Nodo n) { dato=o; siguiente=n; } Pila
16
Crear Pila Al crear una Pila, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. class Pila{ Nodo cabecera; Pila() { cabecera=new Nodo(null); } … } Pila
17
Está una pila vacía? Cuando la pila está vacía el campo siguiente de la cabecera es null public boolean estaVacia() { if (cabecera.siguiente==null) { return true; } else { return false; } Pila
18
Push ( La pila está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado public void push(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; } Pila
19
Push ( La pila no está vacía) Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando public void push(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; } Pila
20
Pop Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo public void pop() { if (cabecera.siguiente==null) System.out.println("LA PILA ESTA VACIA"); else{ Nodo borrar=cabecera.siguiente; cabecera.siguiente=borrar.siguiente; } Pila
21
Imprimir datos public void imprimir() { Nodo actual=new Nodo(null); if (estaVacia()) System.out.println("Vacio"); else { actual=cabecera; System.out.println("\n"); while( actual != null){ System.out.print(" |" + actual.dato + "|->" ); actual=actual.siguiente; } Pila
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.