Pilas colas y lista

23
Est ruct uras de dat os List as Colas Pilas Yuvenny Ramírez 11- 1152

Transcript of Pilas colas y lista

Page 1: Pilas colas y lista

Estructuras de datosListas ColasPilas

Yuvenny Ramírez 11- 1152

Page 2: Pilas colas y lista

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

Page 3: Pilas colas y lista

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

Page 4: Pilas colas y lista

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

Page 5: Pilas colas y lista

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

Page 6: Pilas colas y lista

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

Page 7: Pilas colas y lista

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

Page 8: Pilas colas y lista

Esquema de un nodo y una lista enlazada.

Yuvenny Ramirez

Page 9: Pilas colas y lista

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

Page 10: Pilas colas y lista

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

Page 11: Pilas colas y lista

• 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

Page 12: Pilas colas y lista

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

Page 13: Pilas colas y lista

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

Page 14: Pilas colas y lista

• 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

Page 15: Pilas colas y lista

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

Page 16: Pilas colas y lista

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

Page 17: Pilas colas y lista

Yuvenny Ramirez

Page 18: Pilas colas y lista

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

Page 19: Pilas colas y lista

Yuvenny Ramirez

Page 20: Pilas colas y lista

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

Page 21: Pilas colas y lista

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

Page 22: Pilas colas y lista

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

Page 23: Pilas colas y lista

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