Está en la página 1de 3

"TAD" significa "Tipo Abstracto de Datos".

En el contexto de la programación y
estructuras de datos, un TAD es una abstracción matemática que define un conjunto de
objetos y las operaciones que se pueden realizar con esos objetos sin especificar cómo se
implementan internamente

TAD DE PILA

Un stack (o pila) es una clase especial de lista en la que todas las inserciones y supresiones de elementos
se efectúan sobre uno de sus extremos, llamado el tope del stack.

Ejemplos de stacks son: pila de fichas de poker en una mesa pila de platos para lavar, pila de libros, ...

donde es claramente conveniente quitar el elemento que está en el tope de la pila o agregar un
elemento nuevo sobre el tope de la misma.

la operación que construye un stack vacío, Empty (crearPila);


 Push (apilar), que inserta un elemento en el tope del stack;  Top (cima), que retorna el elemento que
se encuentra en el tope del stack;
 Pop (desapilar), remueve el elemento que se encuentra al tope (en la cima) del stack;

 IsEmpty (esVaciaPila), que testea si el stack es vacío o no;


 Si se trata de un stack acotado se incluye un predicado adicional, IsFull (esLlenaPila), que testea si el
stack está lleno. Notar que en este caso la operación Push tendría precondición;
 Finalmente puede incluirse una operación para destruir un stack (destruirPila), liberando la memoria
que éste ocupa.

En la implementación de modelos de ejecución de llamados a procedimientos (stack de ejecuciones)

class Pila:
def __init__(self):
self.items = [] # Utilizamos una lista para representar la pila vacía

def push(self, elemento):


self.items.append(elemento) # Agregar el elemento al final de la lista (cima de la pila)

def pop(self):
if not self.is_empty():
return self.items.pop() # Eliminar y devolver el elemento de la cima de la pila
else:
raise IndexError("La pila está vacía")

def top(self):
if not self.is_empty():
return self.items[-1] # Devolver el elemento de la cima de la pila
else:
raise IndexError("La pila está vacía")

def is_empty(self):
return len(self.items) == 0 # Verificar si la pila está vacía

def size(self):
return len(self.items) # Devolver el tamaño de la pila

TAD DE COLA

Puedes imaginar una cola como una fila de personas esperando para realizar una tarea, donde
la primera persona que llega es la primera en ser atendida.

– la operación que construye una cola vacía, Empty (crearCola).


– Enqueue (encolar), que inserta un elemento al final de la cola.
– Front (frente), que retorna el elemento que se encuentra en el comienzo de la cola.
– Dequeue (desencolar), que borra el primer elemento de la cola.
– IsEmpty (esVaciaCola), que testea si la cola es vacía.
– IsFull (esLlenaCola), que testea si la cola está llena (si es una cola acotada).
– Una operación destructora, para eliminar una cola y liberar la memoria que ésta ocupa.

IMPLEMENTACION

 Las listas de espera son en general colas (por ejemplo, de llamadas telefónicas en una central) .
 }Los trabajos enviados a una impresora se manejan generalmente siguiendo una política de cola
(suponiendo que los trabajos no son cancelados).

Intercalación de vectores ordenados

Implementación: El proceso de intercalación generalmente implica la comparación de los


elementos de ambos vectores y la inserción del elemento menor en el vector resultante. Este
proceso se repite hasta que todos los elementos de ambos vectores se hayan incorporado al
vector intercalado.

Ordenación por inserción

Implementación: El algoritmo de ordenación por inserción recorre el conjunto de datos y, para


cada elemento en la parte desordenada, lo inserta en su posición adecuada en la parte
ordenada, desplazando los elementos mayores si es necesario. Este proceso se repite hasta que
toda la parte desordenada se haya incorporado a la parte ordenada.
class Cola:
def __init__(self):
self.items = [] # Utilizamos una lista para representar la cola vacía

def enqueue(self, elemento):


self.items.append(elemento) # Agregar el elemento al final de la lista (final de la cola)

def dequeue(self):
if not self.is_empty():
return self.items.pop(0) # Eliminar y devolver el elemento del frente de la cola
else:
raise IndexError("La cola está vacía")

def front(self):
if not self.is_empty():
return self.items[0] # Devolver el elemento del frente de la cola
else:
raise IndexError("La cola está vacía")

def is_empty(self):
return len(self.items) == 0 # Verificar si la cola está vacía

def size(self):
return len(self.items) # Devolver el tamaño de la cola

También podría gustarte