LOGO                    Estructuras De Datos                        Listas, Pilas y Colas                                 ...
Contenidos             Introducción               Estructuras Listas                Estructuras Pilas               Estruc...
Introducción     Los datos físicos se encuentran asociados a un mecanismo de datos, que     controla la forma en que la in...
Cada uno de los métodos mencionados con anterioridad proporciona una solución a cadatipo de problema. Todos ellos tienen d...
Estructuras ListasUna lista es una estructura que se utiliza para almacenar información del mismo tipo, con lacaracterísti...
Ejemplos de Listas    Lista Nombres de una    Lista de compra del mes      Lista de enfermedades    Sección (José, María, ...
Ejemplo de Tad Lista                                                           Tad ListaTad Lista                         ...
Concepto de ventana con el de lista Se define la ventana de una lista como el lugar de la secuencia sobre el cual se van ...
Implementación de listas mediante   vectores. Las listas se pueden implementar usando las posiciones consecutivas de un v...
Implementación de listas doblemente   enlazadasUna lista doblemente enlazada es una lista lineal en la que cada nodo tiene...
Operaciones Con listas enlazadas Definir y crear los nodos. Definir la cabecera (o inicio) de la lista. Recorrer los no...
Los mecanismos mediante los cuales los lenguajes de    programación permiten implementar las listas. En el lenguaje C se ...
Como los Lenguajes Que No Manejan Apuntadores SimulanLas Listas Doblemente Enlazadas.Éstas listas tienen como característi...
Estructuras Pilas Una pila es una lista ordenada de elementos en el que todas las inserciones y eliminaciones se realizan ...
Operaciones con Listas PUSH (pila, elemento): Introduce un elemento en la pila.  También se le conoce como poner o meter....
Ejemplo de Pilas  Pilas                  Estanterias                         De un                         Supermerca     ...
Tad PilaTad Pila         Inv: {int, p (e Є Z+) & (n Є Z+)} //siendo e1 el fondo y en el tope.          Función: CrearPilaV...
Los mecanismos mediante los cuales los lenguajes de programaciónpermiten implementar las pilas a través de listas y vector...
Estructuras ColasUna cola es un conjunto ordenado de elementos homogéneos, en el cual loselementos se eliminan por uno de ...
Operaciones de las colasLas operaciones que se pueden realizar con una cola son:  Acceder al primer elemento de la cola....
Objetos de la vida Real                Cola De Impresión    Cola De un Autobús     Cola De un Cine                        ...
Ejemplo Tad ColaTad cola      Inv: {int, c (e Є Z+) & (n Є Z+)} //siendo e1 el fondo y en el tope.      Función: CrearCola...
Describir las particularidades de un TADcola con prioridades. Una cola de prioridades se comporta como una cola de corrien...
Describir Las Implementaciones De ColasCon Vectores Circulares.La implementación de una cola mediante arreglos lineales es...
LOGO       Gracias Por su Atención!!!! .                                       25
Próxima SlideShare
Cargando en…5
×

Estructuras de datos

773 visualizaciones

Publicado el

Listas , Pilas y Colas

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
773
En SlideShare
0
De insertados
0
Número de insertados
10
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Estructuras de datos

  1. 1. LOGO Estructuras De Datos Listas, Pilas y Colas Jennyffer FernándezDra. Rina Familia 11-0983 1
  2. 2. Contenidos Introducción Estructuras Listas Estructuras Pilas Estructuras Colas 2
  3. 3. Introducción Los datos físicos se encuentran asociados a un mecanismo de datos, que controla la forma en que la información puede ser accedida por los programas. Existen Básicamente cuatro tipos de estos mecanismos: 3
  4. 4. Cada uno de los métodos mencionados con anterioridad proporciona una solución a cadatipo de problema. Todos ellos tienen dos elementos en común; 4
  5. 5. Estructuras ListasUna lista es una estructura que se utiliza para almacenar información del mismo tipo, con lacaracterística que puede contener un número indeterminado de elementos, y que estos elementosmantienen un orden explícito ya que cada elemento contiene en sí mismo la dirección del siguienteelemento.Las operaciones que se pueden realizar con listas son:   Insertar, eliminar o localizar un elemento.  Determinar el tamaño de la lista (número de elementos).  Recorrer la lista para localizar un determinado elemento.  Clasificar los elementos de la lista en orden ascendente o descendente.  Unir dos o más listas en una sola.  Dividir una lista en varias sublistas.  Copiar una lista.  Borrar una lista 5
  6. 6. Ejemplos de Listas Lista Nombres de una Lista de compra del mes Lista de enfermedades Sección (José, María, (arroz, mantequilla, café, terminales en pacientes Teresa, Juana pollo, azúcar, sal) (Sida, cáncer, Insuficiencia Renal Crónica) 6
  7. 7. Ejemplo de Tad Lista Tad ListaTad Lista Tad ListaInv: {(a Є Z+) & (i Є Z+)} Inv: {(a Є String) & (i Є Z+)}Función: CrearListaVacía (void): Duelve una lista vacía. Función: SiExisteProvincia (String): Devuelve un Boolean{Pre: i =0} {Pre: Lenght a>0} // El tamaño del elemento debe ser{Post: ListaVacía creada} mayor que ceroPersistencia: N/A {Post: Boolean} // Devuelve un True Persistencia: 960 bytes   7
  8. 8. Concepto de ventana con el de lista Se define la ventana de una lista como el lugar de la secuencia sobre el cual se van a realizar las operaciones que se apliquen al objeto abstracto. De cierta manera, se puede ver como el único punto de la lista visible al usuario. Esto implica que el TAD, además de las operaciones usuales, debe tener operaciones para mover la ventana, de tal manera que se pueda colocar sobre cualquier elemento de la lista y afectarlo de la manera deseada 8
  9. 9. Implementación de listas mediante vectores. Las listas se pueden implementar usando las posiciones consecutivas de un vector. Como las listas tienen longitud variable y los vectores longitud fija, esto se resuelve considerando vectores de tamaño igual a la longitud máxima de la lista y un entero donde se indica la posición donde se encuentra el último elemento de la lista. 9
  10. 10. Implementación de listas doblemente enlazadasUna lista doblemente enlazada es una lista lineal en la que cada nodo tiene dos enlaces, uno al nodosiguiente, y otro al anterior. La implementación de listas doblemente enlazadas se puede realizarcon estructuras estáticas (arreglos) o con estructuras dinámicas (punteros).Las listas doblemente enlazadas no necesitan un nodo especial para acceder a ellas, puedenrecorrerse en ambos sentidos a partir de cualquier nodo, esto es porque a partir de cualquiernodo, siempre es posible alcanzar cualquier nodo de la lista, hasta que se llega a uno de losextremos. 10
  11. 11. Operaciones Con listas enlazadas Definir y crear los nodos. Definir la cabecera (o inicio) de la lista. Recorrer los nodos de una lista enlazada. Agregar un nodo a la lista. Al final. Al Principio. En el centro. Eliminar un nodo de la lista. Al final. Al Principio. En el centro 11
  12. 12. Los mecanismos mediante los cuales los lenguajes de programación permiten implementar las listas. En el lenguaje C se utilizan los llamados punteros, para representar esta estructura de datos. En java en el paquete java.util se encuentra la clase arraylist, que permite el almacenamiento de datos en memoria de forma similar a los arrays convencionales, pero con la gran ventaja de que el número de elementos que puede almacenar es dinámico. La cantidad de elementos que puede almacenar un array convencional está limitado por el número que se indica en el momento de crearlo o inicializarlo. Los ArrayList, en cambio, pueden almacenar un número variable de elementos sin estar limitados por un número prefijado. 12
  13. 13. Como los Lenguajes Que No Manejan Apuntadores SimulanLas Listas Doblemente Enlazadas.Éstas listas tienen como característica que poseen nodos dobles, que guardanreferencias de un nodo anterior y siguiente. Los elementos pueden ser ingresados alprincipio o final de la lista. Se puede recorrer la lista en el sentido hacia adelante ohacia atrás, permitiendo tener la impresión en orden normal u orden inverso.public class NodoDoble {    //Campos del nodo    int informacion;    Nodo anterior;    Nodo siguiente;    //constructor que inicializa un Nodo con cierta informacion o dato    public Nodo(int dato) {        informacion = dato;        anterior = null;        siguiente = null;  }}public class ListaDoblementeEnlazada {    Nodo cabeza;    Nodo fin;    //constructor que crea una LDE vacia.    public ListaDoblementeEnlazada() {        cabeza = null;        fin = null;  } 13
  14. 14. Estructuras Pilas Una pila es una lista ordenada de elementos en el que todas las inserciones y eliminaciones se realizan por un mismo extremo de la lista. En una pila el último elemento añadido es el primero en salir de la pila. Por esa razón a las pilas se las denomina también listas LIFO (last input, firts output; último en entrar, primero en salir). La implementación de una pila se puede realizar mediante arreglos o con punteros. El Inconveniente de la realización de una pila mediante arreglos es que su tamaño máximo se debe Especificar en tiempo de compilación. Debido a esto, la implementación de pilas se realiza Frecuentemente mediante punteros.   Una pila puede contener un número ilimitado de elementos y no producir nunca desbordamiento. 14
  15. 15. Operaciones con Listas PUSH (pila, elemento): Introduce un elemento en la pila. También se le conoce como poner o meter. POP (pila): Elimina un elemento de la pila. También se le conoce como sacar o quitar. VACIA (pila): Función booleana que indica si la pila esta vacía o no.  15
  16. 16. Ejemplo de Pilas Pilas Estanterias De un Supermerca Pilas De do Libros Pilas De platos Objetos de la Vida Real Pilas De Caja Camisas De CD 16
  17. 17. Tad PilaTad Pila Inv: {int, p (e Є Z+) & (n Є Z+)} //siendo e1 el fondo y en el tope. Función: CrearPilaVacia (void): Devuelve una pila vacía. // Construye una pila vacía, esto es solicitar memoria para poder almacenar los elementos en la pila. {Pre: p =0} {Post: PilaVacia creada p=< >} Persistencia: N/A Tad pila Inv: {int, p (e Є Z+) & (n Є Z+)} //siendo e1 el fondo y en el tope. Función: Desapilar (pila): Devuelve un e // Saca de la pila p el elemento insertado más recientemente {Pre: p ≠ φ o sea p = < e1 , e2 ,e3 . . . ,en > } {Post: p = < e1, e2, e3. . . ,e n-1 > } Persistencia: Con 32 bits se pueden representar 232=4294967296 valores 17
  18. 18. Los mecanismos mediante los cuales los lenguajes de programaciónpermiten implementar las pilas a través de listas y vectores Para implementar la pila con un arreglo hay que tener lo siguiente:oUna variable que guarde el topeoEl largo del arrayoEl array que contiene los datosoPara esto suponemos que el array comienza en 0.oAl principio la variable que indica el tope debe iniciarse en 0. Al hacer PUSH si el tope no es igual al largo del array entonces se suma uno al tope y se introduceel dato en la posición del array indicada por la variable tope. Si el tope es igual al largo del arrayentonces hay que enviar un error o bien agrandar el array.Al hacer POP se decrementa el tope de la pila. Si este es 0 se puede enviar un error o no hacernada, pues la pila ya está vacía. 18
  19. 19. Estructuras ColasUna cola es un conjunto ordenado de elementos homogéneos, en el cual loselementos se eliminan por uno de sus extremos, denominado cabeza, y se añadenpor el otro extremo, denominado final. En las colas el elemento que entró primero también sale primero, por ello se conocen comoestructuras FIFO (First in First out). Así pues la diferencia con las pilas es solamente el modo deentrada y salida de datos. 19
  20. 20. Operaciones de las colasLas operaciones que se pueden realizar con una cola son:  Acceder al primer elemento de la cola. Añadir un elemento al final de la cola. Eliminar el primer elemento de la cola. Vaciar la cola. Verificar el estado de la cola.  20
  21. 21. Objetos de la vida Real Cola De Impresión Cola De un Autobús Cola De un Cine Colas Acceso a almacenamiento En Disco 21
  22. 22. Ejemplo Tad ColaTad cola Inv: {int, c (e Є Z+) & (n Є Z+)} //siendo e1 el fondo y en el tope. Función: CrearColaVacia (void): Cola Vacía. // Devuelve un valor de tipo cola preparado para ser usado y que contiene un valor de cola Vacía. {Pre: N =0} {Post: ColaVacia creada c=< >} Persistencia: N/A 22
  23. 23. Describir las particularidades de un TADcola con prioridades. Una cola de prioridades se comporta como una cola de corriente .En este tipo de estructuras, cada componente incluye un valor que representa su prioridad. Para sacar un elemento, lo mismo que para consultarlo, se toma el primero de la secuencia (el más antiguo de mayor prioridad). Para la cola de prioridades cola = [ A«9] [ B«5] [ C«3] [ D«1] , si llega el elemento E con prioridad 6, se obtiene la secuencia: cola = [ A«9] [ E«6] [ B«5] [ C«3] [ D«1] Si llega el mismo elemento pero con prioridad 5, debe quedar antes que todos los elementos de menor prioridad, pero después de los que se encuentren presentes y tengan una prioridad mayor o igual: cola = [ A«9] [ B«5] [ E«5] [ C«3] [ D«1] En cualquier caso, el siguiente elemento que va a ser atendido en la cola es el elemento A. 23
  24. 24. Describir Las Implementaciones De ColasCon Vectores Circulares.La implementación de una cola mediante arreglos lineales es poco eficiente. Cada operación desupresión de un elemento supone mover todos los elementos restantes de la cola.Para evitar este gasto, imaginaremos un arreglo como una estructura circular en la que al últimoelemento le sigue el primero.Esta representación implica que aún estando ocupado el último elemento del arreglo, puedeañadirse uno nuevo detrás de él, ocupando la primera posición del arreglo. 24
  25. 25. LOGO Gracias Por su Atención!!!! . 25

×