pilas colas y lista
TRANSCRIPT
Estructuras de datosListas ColasPilas
Yuvenny Ramírez 11- 1152
listas
Est r uct ur a de dat os or ganizada de f or ma secuencial, homogénea y dinámica. Con dinámica nos r ef er imos que puede cr ecer o decr ecer en t iempo de ej ecución según nuest r as necesidades.
Podr íamos mencionar var ios t ipos de list as:• Densa: la pr opia est r uct ur a det er mina cual es el
siguient e element o de la list a. Ej emplo: ar r ays.• Enlazadas: la posición del siguient e element o de la
est r uct ur a la det er mina el element o act ual.
Yuvenny Ramirez
La list a enlazada es un TAD que nos per mit e almacenar dat os de una f or ma or ganizada, al igual que los vect or es per o, a dif er encia de est os, est a est r uct ur a es dinámica, por lo que no t enemos que saber "a pr ior idad" los element os que puede cont ener .En una list a enlazada, cada element o apunt a al siguient e except o el últ imo que no t iene sucesor y el valor del enlace es null. Por ello los element os son r egist r os que cont ienen el dat o a almacenar y un enlace al siguient e element o. Los element os de una list a, suelen r ecibir t ambién el nombr e de nodos de la list a. Yuvenny Ramirez
Par a que est a est r uct ur a sea un TAD list a enlazada, debe t ener unos oper ador es asociados que per mit an la manipulación de los dat os que cont iene.
Los oper ador es básicos de una list a enlazada son:
• I nser t ar : inser t a un nodo con dat o x en la list a, pudiendo r ealizar se est a inser ción al pr incipio o f inal de la list a o bien en or den.
• Eliminar : elimina un nodo de la list a, puede ser según la posición o por el dat o.
• Buscar : busca un element o en la list a.• Localizar : obt iene la posición del nodo en la list a.• Vaciar : bor r a t odos los element os de la list a
Yuvenny Ramirez
Lista a base de vectores• Tiene que declar ar se el t amaño de la list a.
– Exige sobr evalor ación. – Consume mucho espacio.
• Complej idad comput acional de las oper aciones:– Buscar el enésimo, t iempo const ant e– Visualizar y Buscar , t iempo lineal.– I nser t ar y Eliminar son cost osas.
• I nser t ar o eliminar un element o exige, en pr omedio, desplazar la mit ad de los valor es, O(n).
• La const r ucción de una list a o la eliminación de t odos sus element os podr ía exigir un t iempo cuadr át ico.
Yuvenny Ramirez
Implementación de listas a base de apuntadores
• Cada nodo apunt a al siguient e; el ult imo no apunt a a nada. • La list a es un punt er o al pr imer nodo (y al ult imo). • Complej idad comput acional de las oper aciones:
– Visualizar y Buscar , t iempo lineal.– Buscar el enésimo, t iempo lineal.– Eliminar r ealiza un cambio de apunt ador es y una or den nuevo,
O(1).• Usa Buscar ant er ior cuyo t iempo de ej ecución es lineal.
– I nser t ar t r as una posición P r equier e una llamada a new y dos maniobr as con apunt ador es, O(1).
• Buscar la posición P podr ía llevar t iempo lineal.
Yuvenny Ramirez
Implementación de listas doblemente enlazadas
• Cada nodo apunt a al siguient e y al ant er ior .• Duplica el uso de la memor ia necesar ia par a los
punt er os.• Duplica el cost e de manej o de punt er os al inser t ar y
eliminar .• La eliminación se simplifi ca.
– No es necesar io buscar el element o ant er ior .
Yuvenny Ramirez
Esquema de un nodo y una lista enlazada.
Yuvenny Ramirez
Tad lista
• Tipo: Unidimensional• {inv:N per t enece Z+(numer os ent er os
posit ivos}• Oper aciones:
– Cr ear _vect or int >vect or– Asignar _valor esvect or xint >vect or– Or denar _vect or vect or xint >vect or– Det er m_cent r ovect or xint >int
Yuvenny Ramirez
pilas
Una pila, es una est r uct ur a de dat os en la que el últ imo element o en ent r ar es el pr imer o en salir , lo que t ambién se denominan est r uct ur as LI FO(Last In, First Out).En est a est r uct ur a sólo se t iene acceso a la cabeza o cima de la pila.
Yuvenny Ramirez
• Acceso limitado al ultimo elemento insertado.
• Oper aciones básicas: apilar , desapilar y cima.– Push: inser t ar la dat a en el t ope de la pila.– Pop: r emueve la dat a del t ope de la pila.– Desapilar o cima en una pila vacía es un
er r or en el TAD pila.– Quedar se sin espacio al apilar es un er r or
de implement ación. • Cada oper ación deber á t ar dar una cant idad
const ant e de t iempo en ej ecut ar se.– Con independencia del numer o de
element os apiladas.Yuvenny Ramirez
Objetos Reales modelados en pila
Pr opor cionan un medio or denado de demor ar la r ealización de las t ar eas secundar ias que apar ecen dur ant e la ej ecución del pr ogr ama.
•Suelen ir asociadas a algor it mosr ecur sivos.•Tipos der ivados: pilas de pr ogr amas,pila del analizador sint áct ico (par ser ).
Yuvenny Ramirez
TAD PILAS
• I nvar iant e:n>0• Oper aciones:cr ear Pila()
Devuelve valor del t ipo pila pr epar ado par a ser usado y que cont iene un valor de pila vacía.Est a oper ación es la misma que la de las list as gener ales.
• Pr econdiciones:N=0• Poscondiciones:pilacr ead
30/11/12 Yuvenny Ramirez 11-1152
• inser t ar Pila(cr ear Pila)Mediant e est e mét odo se inser t an dat os a la pila ya cr eada. Con las pilas se usa el mét odo push par a inser t ar .
• Pr econdiciones: pila<>null• Poscondiciones:inser t ar Pilacomplet ado (dat os
inser t ado en pila)• bor r ar Pila()
Con est e mét odo se elimina cier t a pila de dat os• Pr econdiciones:pila<>null• Poscondiciones:pilaeliminada
Yuvenny Ramirez
cola
Una cola es una est r uct ur a de dat os donde el pr imer element o en ent r ar es el pr imer o en salir , t ambién denominadas est r uct ur as FI FO (First In, First Out).
Est a est r uct ur a de dat os se puede def inir como una list a enlazada con acceso FI FO a la que sólo se t iene acceso al f inal de la list a par a met er element os y al pr incipio de est a par a sacar los.
Yuvenny Ramirez
Operaciones básicas
• inser t ar , quit ar Pr imer o y pr imer o.• Cada r ut ina deber ía ej ecut ar se en t iempo
const ant e.• I mplement ación cir cular a base de vect or es• La implement ación cir cular devuelve cabeza y
fi n al pr incipio delvect or cuando r ebasan la ult ima posición.
Yuvenny Ramirez
Yuvenny Ramirez
Amortización de la duplicación del vector
• Cuando el vect or no se duplica, t oda oper ación se r ealiza en t iempo const ant e.– La complej idad de una inser ción con
duplicación es O(N).• La duplicación de un vect or de N element os
est a pr ecedida, al menos, por N/ 2 inser ciones que no duplican el vect or .
• Repar t iendo el cost e O(N) de la duplicación ent r e las inser ciones pr ecedent es.– El cost e de inser t ar aument a solo en una
const ant e. Yuvenny Ramirez
Yuvenny Ramirez
Cola con prioridades
• En una cola de pr ior idad los element os est án or denados dependiendo de su pr ior idad, de t al f or ma que est e disponible (par a las oper aciones Fr ent e y Ext r aer ) el element o de máxima pr ior idad.
• En caso de igualdad se sigue la r egla FI FO, de dos element os con igual pr ior idad sale pr imer o el que pr imer o ent r o.
• Est o se puede conseguir bien inser t ando or denadament e y ext r ayendo el pr imer element o.
Yuvenny Ramirez
TAD cola
• Tipo: Unidimensional• Invariante: {Inv: N pertenece Z+}• Operaciones:
– Cola_Crear x int > vector– Cola_Insertar vector x int x int > vector– Cola_Extraer vector x int > vector– Cola_Hayelementos vector > boolean– Cola_Eliminar vector x int > vector– Cola_llena vector x int > vector– Cola_Vaciar vector x int > vector
Yuvenny Ramirez
Objetos reales modelados con colas
Las colas se ut ilizan en muchos algor it mos y ensit uaciones en las que el r endimient o de dos sist emas que se cr uzan dat os ent r e sí es más ef icient e cuando no se int er cambian indicat ivos y señales de cont r ol (handshaking) en cada t r ansf er encia.
•También almacenan t empor alment e la t r ansf er encia de inf or mación, lo que per mit e pr ocesar la en or igen y en dest ino a t asas independient es.
•La cola de event os en J ava es un buen ej emplo.•Tipos der ivados: colas de pr ior idad y f luj os de dat os
Yuvenny Ramirez
bibliografia
• http://www.calcifer.org/documentos/librognome/glib-lists-queues.html
• http://www.slideshare.net/jose3jo/listas-pilas-y-colas-7072889
• http://www.slideshare.net/egpena/estructura-de-datos-listas-pilas-y-colas-7075952
Yuvenny Ramirez