• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ED Listas, Pilas y Colas
 

ED Listas, Pilas y Colas

on

  • 1,466 views

 

Statistics

Views

Total Views
1,466
Views on SlideShare
1,286
Embed Views
180

Actions

Likes
3
Downloads
0
Comments
0

6 Embeds 180

http://febrerinos.blogspot.com 152
http://virtual.unibe.edu.do 17
http://www.febrerinos.blogspot.com 4
http://febrerinos.blogspot.com.es 3
http://www.blogger.com 2
http://febrerinos.blogspot.mx 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ED Listas, Pilas y Colas ED Listas, Pilas y Colas Presentation Transcript

    • Estructura de Datos
    • Contenido Estructura de LISTA Estructura PILA Estructura COLA
    • DefinicionesEs una estructura de datos secuencial.Es una estructura de datos homogénea y dinámica, que va a estar formada poruna secuencia de elementos, donde cada uno de ellos va seguido de otro o deninguno.Homogénea: Todos los elementos que la forman tienen el mismo tipo base.Dinámica: Puede crecer o decrecer en tiempo de ejecución según nuestrasnecesidades. dos listas pueden ser diferentes si:Las listas son secuencias de 0 ó más elementos de un tipo de datos almacenadosen memoria. Son estructuras lineales donde cada elemento de una lista excepto elprimero tiene un único predecesor y cada elemento de la lista excepto el últimotiene sucesor.
    • Objetos reales
    • TAD ListaNombre: TAD ListaInvariante: n/aOperaciones:crearLista ()*/Devuelve un valor del tipo pila preparado para ser usado y que contiene un valor de pila vacía. Esta operación es la mismaque la de las listas generales.*/ preCond: N=0 posCond: Lista creadainsertar(crearLista, x pos)*/mediante este método se insertan datos a la lista ya creada. Inserta elemento x en pos*/ preCond: pos ¡= null posCond: insertarLista completado (dato insertado en Lista)Fin():*/Retorna la posición del último elemento, en otras palabras el “fin” de la lista, también se puede considerar con el tamaño dela lista. Sí la lista está vacía retorna una posición invalida que podría ser -1.*/ preCond: n/a posCond: operación finalizadasiguiente(pos)*/con este método se retorna pos + 1, si pos es ≥ a fin(), retorna fin().*/ preCond: pos!=0 posCond: retorna posanterior(pos)*/con este método se retorna pos -1.*/ preCond: pos!=0 posCond: retorna poslimpiar(pos)*/limpia la lista y finaliza fin()*/ preCond: n…n+a, pos =0 posCond: lista vacia…
    • Relación entre Ventana y Lista Una ventana es un área visual, normalmente de forma rectangular de usuario, mostrando la salida y permitiendo la entrada de datos para uno de varios procesos que se ejecutan simultáneamente. La misma consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior. La relación es que con ambos términos nos referimos a manipulación de datos sin importar el orden de los mismos, solo el acceso y su modificación.
    • ImplementaciónPara representar en lenguaje C en esta estructura de datos se utilizaránpunteros, un tipo de datos que suministra el lenguaje. Se representará unalista vacía con la constante Null. Se puede definir la lista enlazada de lasiguiente manera:struct lista{ Int clave; Struct lista *sig;};
    • E1. Vectores Utilizando una estructura de datos estática arreglo para representar e implementar el TAD Listas.Asumamos que los elementos que contiene la lista son representados por el tipo entero. La cantidad deelementos que puede contener la lista tiene un máximo de n elementos. Por lo que la representación formalde este tipo se define de la siguiente manera: tipo Lista= arreglo [1..n] de enteros; Varl:lista; Implementación Procedimiento: Operaciones básicas. Lista_vacia (var L: Lista) Var i: entero; Principio Para i:= 1 hasta n hacer L[i]:=0; Fin; Función es_vacia(l:lista):lógico Principio Si L[1] = 0 entonces es_vacia:= verdad Sino es_vacia:= falso; Fin; Procedimiento insertar (var l:lista, p:
    • E2. Listas doblemente enlazadasUna lista enlazada es una de las estructuras de datosfundamentales, y puede ser usada para implementar otrasestructuras de datos. Consiste en una secuencia de nodos, en losque se guardan campos de datos arbitrarios y una o dos referencias(punteros) al nodo anterior o posterior.El principal beneficio de las listas enlazadas respecto a los arrayconvencionales es que el orden de los elementos enlazados puedeser diferente al orden de almacenamiento en la memoria o en eldisco, permitiendo que el orden de recorrido de la lista seadiferente al de almacenamiento.Una ventaja es que pueden recorrerse en ambos sentidos, ya seapara efectuar una operación con cada elemento o para insertar y/oactualizar y borrar.
    • Como los lenguajes de programación permitenimplementar las listas En java se encuentra un paquete completo en java.util de dondese pueden utilizar las listas, como un tipo abstracto de datos, estetipo de estructura de datos también se utiliza a partir de unainterfaz. En C se utilizan los llamados punteros para representar estaestructura de datos.
    • Estructura PILADefinicionesEs un caso especial de lista en la cual todas las inserciones y supresionestienen lugar en un extremo determinado llamado tope.Las pilas también son llamadas listas LIFO (Last In- First Out). En el TAD Pila nose definen operaciones de posicionamiento en la pila. Esto es debido a quetodas las operaciones de acceso se realizan en la misma posición, o sea en eltope de la pila.
    • Objetos Reales
    • Implementación Nombre: TAD Pila Invariante: n<>0 Operaciones: crearPila() */Devuelve un valor del tipo pila preparado para ser usado y que contiene un valor de pila vacía. Esta operación es la misma que la de las listas generales.*/ preCond: N=0 posCond: pila creada insertarPila(crearPila) */mediante este método se insertan datos a la pila ya creada. Con estas se usa el método push para insertar*/ preCond: pila<>null posCond: insertarPila completado (datos insertados en pila) borrarPila() */con este método se elimina cierta pila de datos*/ preCond: pila<>null posCond: pila eliminada
    • Estructura COLA Es una estructura de datos lineal en donde las eliminaciones se realizan por uno de sus extremos que normalmente se llama frente, y las inserciones se realizan por el otro extremo que normalmente se llama final. A estas estructuras se les llama FIFO (First-In First-Out).
    • ImplementaciónNombre: TAD ColaInvariante: n/aOperaciones:crearCola()*/Devuelve un valor del tipo cola preparado para ser usado y que contiene un valor de pila vacia. Esta operación es lamisma que la de las listas generales.*/ preCond: N=0 posCond: cola vacia creadainsertarCola(crearCola)*/mediante este método se insertan datos a la cola ya creada.*/ preCond: cola<>null posCond: datos insertados en la cola, cola insertada.borrarCola()*/con este método se elimina cierta cola de datos*/ preCond: cola!=0 posCond: cola eliminada
    • Particularidades de un TAD Colacon prioridades Se introduce una forma de simular generalidad en los TADs de Modula-2 mediante el uso del TAD ITEM. En una cola de prioridad los elementos están ordenados dependiendo de su prioridad, de manera que esté disponible (para las operaciones Frente y Extraer) el elemento de máxima prioridad. En caso de igualdad se sigue la regla FIFO de dos elementos con igual prioridad, sale primero el que entra primero. Esto se puede conseguir bien insertando ordenadamente y extrayendo el primer elemento.
    • Implementación de Cola convectores circulares. Public class Cola { Private static int max = 100; Private Objetc elementos[]; Private int frente, post; }