estructuras de datos - lsc.fie.umich.mxlsc.fie.umich.mx/~pedro/ed/data_structuresp.pdf ·...
TRANSCRIPT
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Estructuras de Datos
Pedro Chavez Lugo
15 de marzo de 2010
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
1 Introduccion
2 Cola
3 Pila
4 Aplicaciones de colas y pilas
5 Ejemplo
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Tipo de Dato Abstracto
Un tipo de dato abstracto (TDA), corresponde a un conjunto devalores y un conjunto de operaciones sobre tales valores.
Ejemplos de TDA
Enteros.
Reales.
Booleanos.
Listas.
etc.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Tipo de Dato Abstracto
Tipos de datos primitivos
La gran mayorıa de los tipos de datos primitivos (int, float, double,etc.) estan definidos en los registros de las actuales arquitecturasde procesador.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Tipo de Dato Abstracto
Tipos de datos primitivos
La gran mayorıa de los tipos de datos primitivos (int, float, double,etc.) estan definidos en los registros de las actuales arquitecturasde procesador.
Tipo de Dato Abstracto
Los TDA son definidos por el programador.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Tipo de Dato Abstracto
Tipos de datos primitivos
La gran mayorıa de los tipos de datos primitivos (int, float, double,etc.) estan definidos en los registros de las actuales arquitecturasde procesador.
Tipo de Dato Abstracto
Los TDA son definidos por el programador.TAD = Datos + Operaciones
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Lista
La lista es un TDA, que consta de una secuencia de elementosllamados nodo.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Lista
La lista es un TDA, que consta de una secuencia de elementosllamados nodo.
Nodo
Datos (Informacion)
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Lista
La lista es un TDA, que consta de una secuencia de elementosllamados nodo.
Nodo
Datos (Informacion)
Enlace o apuntador (Apunta al siguiente nodo)
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Lista
La lista es un TDA, que consta de una secuencia de elementosllamados nodo.
Nodo
Datos (Informacion)
Enlace o apuntador (Apunta al siguiente nodo)
Datos Enlace Teléfono Enlace
Nodo
Nombre
Ejemplo
Sexo
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Nodos enlazados
Los nodos forman una secuencia desde el primer elemento al ultimoelemento. El primer nodo se enlaza al segundo, este se enlaza al tercero,y ası sucesivamente hasta llegar al ultimo nodo, que debe serrepresentado de forma diferente para especificar que este nodo no seenlaza a ningun otro.
Primer nodo Ultimo nodo
Datos Datos nullDatos
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Nodo
public class Nodo {
int id;
Nodo siguiente;
Nodo()
{
id = 0;
siguiente = null;
}
Nodo(int id)
{
this.id = id;
siguiente = null;
}
}
public static void main(String args[])
{
Nodo cero = new Nodo ();
Nodo uno = new Nodo (1);
Nodo dos = new Nodo (2);
Nodo tres = new Nodo (3);
//enlazamiento
cero.siguiente = uno;
uno.siguiente = dos;
dos.siguiente = tres;
//recorrido de la lista
Nodo aux = cero;
while(aux != null)
{
System.out.println("dato: "+aux.id);
aux = aux.siguiente;
}
}
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Insertar nodo.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Insertar nodo.
Eliminar nodo.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Insertar nodo.
Eliminar nodo.
Buscar nodo.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Insertar nodo.
Eliminar nodo.
Buscar nodo.
Imprimir lista.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Una lista consiste de un conjunto de nodos enlazados.
Operaciones sobre listas
Crear una lista vacıa.
Insertar nodo.
Eliminar nodo.
Buscar nodo.
Imprimir lista.
Eliminar lista.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Lista doblemente enlazada.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Lista doblemente enlazada.
Lista circular simplemente enlazada.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Lista doblemente enlazada.
Lista circular simplemente enlazada.
Lista circular doblemente enlazada.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Lista doblemente enlazada.
Lista circular simplemente enlazada.
Lista circular doblemente enlazada.
Lista FIFO (cola) - First-In-First-Out.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista
Clasificacion de las listas
Lista simplemente enlazada.
Lista doblemente enlazada.
Lista circular simplemente enlazada.
Lista circular doblemente enlazada.
Lista FIFO (cola) - First-In-First-Out.
Lista LIFO (pila) - Last-In-First-Out.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista simplemente enlazada
Fin de listaInicio lista
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista doblemente enlazada
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista circular simplemente enlazada
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Lista circular doblemente enlazada
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Cola
Una cola es un tipo de lista FIFO (el primero en entrar es elprimero en salir), tal como la fila de un banco.Operaciones sobre el tipo cola:
Insertar - por la parte final de la cola.
Remover - por la parte inicial de la cola.
Es vacia - pregunta para saber si la cola es vacia.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Inicio cola removerFin de cola insertar
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Pila
Una pila es un tipo de lista LIFO (el ultimo en entrar es el primeroen salir), tal como una pila de planos.Operaciones sobre el tipo pila:
Meter (push) - inserta por el tope.
Sacar (pop) - sacar por el tope.
Es vacia - pregunta para saber si la pila es vacia.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
tope 2
4
1
3
6
Meter Sacar
Fondo
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Aplicaciones de colas y pilas
Las pilas y colas son dos casos particulares de lista.
Ambas son empleadas en problemas bien definidos.
Aplicaciones:
Compiladores.
Administracion de memoria, procesos de S.O.
Comunicacion de redes.
etc.
Pedro Chavez Lugo Estructuras de Datos
OutlineIntroduccion
ColaPila
Aplicaciones de colas y pilasEjemplo
Ejemplo
Dada una lista que representa un texto (caracteres consecutivos),cifrar a dicha lista para que no sea legible.Solucion emplear al cifrario de Cesar:
Desplazamiento del alfabeto
Si se tiene una A, esta puede ser desplazada n veces. Si n = 3,entonces a la letra A, le corresponde la letra D.
Pedro Chavez Lugo Estructuras de Datos