Sei sulla pagina 1di 9

CARRERA DE INGENIERA DE SISTEMAS

LABORATORIO DE PROGRAMACION III


NMERO DE PRCTICA: IS.P.3.003.301 - 03
NOMBRE DE LA PRCTICA: PILAS CON LISTAS ENLAZADAS
1. DATOS INFORMATIVOS:

CARRERA: INGENIERA DE SISTEMAS


CICLO/NIVEL: 3RO. SEMESTRE
FECHA: 15-08-2016
DOCENTE RESPONSABLE: ING. JOFFRE CARTUCHE CALVA
LABORATORIO: #2

2. FUNDAMENTACIN:

Una pila (stack) es una coleccin ordenada de elementos a los cuales slo se puede
acceder por un nico lugar o extremo de la pila. Los elementos se aaden o se quitan
(borran) de la pila slo por su parte superior (cima). Este es el caso de una pila de
platos, una pila de libros, etc.

CARRERA DE INGENIERA DE SISTEMAS


Las entradas de la pila deben ser eliminadas en el orden inverso al que se situaron
en la misma. Por ejemplo, se puede crear una pila de libros, situando primero un
diccionario, encima de l una enciclopedia y encima de ambos una novela, de modo
que la pila tendr la novela en la parte superior.

Cuando se quitan los libros de la pila, primero debe quitarse la novela, luego la
enciclopedia y por ltimo el diccionario.
Debido a su propiedad especfica ltimo en entrar, primero en salir se conoce a las
pilas como estructuras de datos LIFO (last-in, first-out)
Operaciones de las Pilas
Las operaciones usuales en la pila son Insertar y Quitar.:

Insertar (Push) aade un elemento en la cima de la pila.


Quitar (Pop) elimina o saca un elemento de la pila.
Cima devuelve el elemento que esta en la cima de la pila.
Pila vaca(isVacia) comprueba si la pila esta vaca.
Limpiar pila(VaciarPila) quita todos sus elementos y deja la pila vaca.
Tamao pila(Count) numero de elementos que tiene la pila.
Buscar(BuscarPila) permite buscar un elemento en la pila.

CARRERA DE INGENIERA DE SISTEMAS

Realizar un programa que permita crear una pila con lista enlazada para un tipo de
dato entero, que guarde en un archivo y a continuacin realice las siguientes
actividades.
a)
b)
c)
d)
e)

Devolver el elemento que est en la cima de la pila (Cima).


Contabilizar los elementos de la pila (Count).
Buscar(BuscarPila)
Ordenar la pila.
Guardar en un archivo.

3. OBJETIVOS:
Crear estructuras de datos dinmicas mediante el uso de algoritmos de insercin,
bsqueda, eliminacin, recorrido para el desarrollo de aplicaciones informticas con
pilas.

4. MATERIALES E INSUMOS:
Computadora de escritorio.
NetBeans IDE
Computadora de escritorio o porttil
Sistema Operativo Windows o Linux
Red de datos e Internet

CARRERA DE INGENIERA DE SISTEMAS


5. PROCEDIMIENTO:
Creacin del nodo de la lista
a)

Para empezar con la creacin del programa, utilizaremos el IDE neatBeans como
herramienta de desarrollo en el lenguaje java, agregamos el nombre del proyecto
AppPila.

b)

Agregar un paquete con el nombre Entidades, dentro de este paquete crear dos
clases Pila.java y Nodo.java.

CARRERA DE INGENIERA DE SISTEMAS


c)

En la clase Nodo.java empezaremos creando el nodo de la pila.


public class Nodo {
public int info;
public Nodo sgte;
public Nodo() {
}
public Nodo(int x) {
info = x;
sgte = null;

d)

En la clase Pila.java empezaremos


} a crear nuestra pila con las operaciones
solicitadas.

ublic class Pila {


private Nodo cab;
public Pila() {
}
public boolean isVacia() {
}
public Pila Push( int x) {
}
public void Visualizar() {
}
public void Pop()
{
}
public void VaciarPila()
{
}
public int Count() {
}
public Nodo BuscarPila(int dato) {
}
public Nodo Cima() {
}
}

CARRERA DE INGENIERA DE SISTEMAS

e)

En la clase Pila.java empezaremos a codificar el procedimiento isVacia() y


Push().

private boolean isVacia() {


boolean vacia = false;
if (cab == null) {
vacia = true;
}
return vacia;
}
public Pila Push(int x) {
Nodo nuevo = new Nodo(x);
if (isVacia()) {
cab = nuevo;
} else {
nuevo.sgte = cab;
cab = nuevo;
}
return this;
}

f)

En la clase Pila.java empezaremos a codificar el procedimiento Visualizar().

public void Visualizar() {


Nodo n;
String men = "";
n = cab;
while (n != null) {
men += "[ " + n.info + " ] \n
n = n.sgte;

\n";

}
JOptionPane.showMessageDialog(null, men);
}

CARRERA DE INGENIERA DE SISTEMAS


g)

En la clase Pila.java empezaremos a codificar el procedimiento Pop().


public void Pop() {
//elimina el ultimo elemento
Nodo n;
if (!isVacia()) {
n = cab;
cab = cab.sgte;
n.sgte = null;
} else {
JOptionPane.showMessageDialog(null, "Pila vaca");
}
}

h)

En la clase Pila.java empezaremos a codificar el procedimiento VaciarPila().


public void VaciarPila() {
Nodo n;
while (!isVacia()) {
n = cab;
cab = cab.sgte;
n.sgte = null;
}
JOptionPane.showMessageDialog(null, "Pila eliminada");
}

CARRERA DE INGENIERA DE SISTEMAS

6. CUADROS DE RESULTADOS:
Se espera la realizacin del programa y su correcto funcionamiento, adems realizar lo
siguiente:
Prueba de escritorio de cada procedimiento:
Adjuntar las capturas de las pantallas
1

Pantalla del procedimiento Cima().

Pantalla del Procedimiento Count().

Pantalla del procedimiento Buscar() .

Pantalla de OrdenarPila().

CARRERA DE INGENIERA DE SISTEMAS


Nota: Recuerde, cargar en Google Drive los resultados de la prctica, obtener el
enlace y compartirlo.
7. CONCLUSIONES:(Orientacin para los informes)
Al finalizar la prctica el estudiante estar en la posibilidad de crear algoritmos que utilicen
estructuras de datos dinmicas para un tipo de dato utilizando listas doblemente enlazadas

8. RECOMENDACIONES:(Orientacin para los informes)

Para el desarrollo de la presente actividad, se recomienda hacer uso de la siguiente


bibliografa:
a. Estructura de datos en java Joyanes. Captulo 9. Pg. 267 ( Pilas)
b. Apuntes Unidad 4.
Lea detenidamente el enunciado propuesto.
Resuelva los planteamientos propuestos.

9. BIBLIOGRAFIA

JOYANES Aguilar, Luis. Fundamentos de Programacin, Algoritmos y estructuras de


datos y objetos. Cuarta Edicin. McGraw-Hill, 2008.
DROZDEK, Adam. Estructuras de datos y algoritmos con Java. 2. Edicin. Cengage
Learning Editores, 2010

Potrebbero piacerti anche