Está en la página 1de 11

TIPOS ABSTRACTOS

DE DATOS
2

TIPOS ABSTRACTOS DE DATOS

 Un Tipo Abstracto de Dato (TAD) es un


modelo constituido por un conjunto de objetos
y una colección de operaciones realizables
sobre ellos
 Los lenguajes procedimentales no contemplan
encapsulamiento, razón por la cual la
representación (datos) no es exclusiva de la
implementación (operaciones)
3

TIPOS ABSTRACTOS DE DATOS

 Los lenguajes modulares proveen encapsula-


miento, exclusividad de la implementación
sobre la representación, pero no instanciación
 Los lenguajes orientados a objetos proveen
encapsulamiento, exclusividad de la implemen-
tación sobre la representación e instanciación
4

STACKS (PILAS)

 Un stack es un TAD de comportamiento LIFO,


con las operaciones create, push, pop y empty
 En un stack sólo se puede acceder a uno de
sus extremos, el cual se denomina top
 La operación push pone un elemento en el top
del stack y la operación pop saca el elemento
situado en el top del stack
5

QUEUES (COLAS)

 Una cola es un TAD de comportamiento FIFO,


con las operaciones crear, agregar, extraer y
vacía
 En una cola sólo se puede acceder a uno de
extremos, denominado rear, para agregar un
elemento y al otro, denominado front, para
extraer un elemento
6

PRIORITY QUEUES

 Una cola de prioridad es una cola cuyos


elementos tienen asociada una prioridad que
determina el orden en que son extraídos
 Una prioridad es un número entre 1 y p, donde
1 es la prioridad más alta
 En una cola de prioridad, se puede agregar un
elemento de cierta prioridad, o bien, extraer
el elemento de máxima prioridad
7

HEAPS

 El heap es el caso más notable de cola de


prioridad y se define como un árbol binario
con todos sus niveles completos excepto,
generalmente, el último donde todos los nodos
están ajustados a la izquierda
 Cada nodo en un heap tiene mayor prioridad
que sus descendientes, de manera que el
elemento de prioridad máxima se encuentra
siempre en la raíz del árbol
8

HEAPS

 Los elementos se ingresan por nivel, de


izquierda a derecha
 Después de un ingreso se debe reparar la
eventual alteración de la propiedad de heap
 Debido a la forma de organización del árbol,
se puede usar un arreglo para representarlo.
Basta con numerar los nodos consecutiva-
mente por nivel, de arriba hacia abajo y de
izquierda a derecha
9

HEAPS

 Representación de árbol
Salen
5

10 15

40 20 30 25

45 55 35 60 Entran
10

HEAPS

 Numeración de nodos
1

2
3

4 5 6 7

8 9 10
11

HEAPS

 Representación de arreglo
0 1 2 3 4 5 6 7 8 9 10

v: 5 10 15 40 20 30 25 45 55 35

Salen Entran

 El padre de un elemento v[i] es v[j], con j=i/2


 Un elemento v[j] tiene hijos v[i] y v[i+1], con i= 2*j

También podría gustarte