Академический Документы
Профессиональный Документы
Культура Документы
ndice
TDA Pila
TDA Cola
TDA PILA
Definicin
Def: una pila es una lista ordenada de elementos en la que
todas las inserciones y supresiones se realizan por un
mismo extremo denominado tope o cima de la pila.
TDA PILA
Operaciones
bsicas
TDA PILA
Operaciones
TDA PILA
Implementacin
Listas enlazadas
Vectores
Variables estticas
Tamao mximo fijo
Peligro de
desbordamiento
(overflow)
Uso ineficiente de
memoria
Variables dinmicas
No riesgo de overflow
Limitadas por memoria
disponible
Cada elemento necesita ms
memoria (guardar direccin
siguiente)
Uso eficiente de memoria
TDA PILA
Definicin de
tipos
ELEMENTO = T;
PILA = registro de
tope: numrico;
arreglo: vector[1..MAX]
de ELEMENTO;
finregistro;
Operacin Push
TDA PILA
Operacin Pop
Operacin Top
TDA PILA
Definicin de
tipos
ELEMENTO = T;
NODO = registro de
info: ELEMENTO;
sgte: puntero a NODO;
finregistro;
POSICION = puntero a
NODO;
PILA = registro de
longitud: numerico;
prim: POSICIN;
finregistro;
TDA PILA
Operacin Push
TDA PILA
Operacin Pop
TDA PILA
Operacin Top
TDA PILA
Algunas aplicaciones:
Equilibrado de smbolos
Llamadas a subprogramas
Eliminacin de recursividad
Tratamiento de expresiones aritmticas
TDA PILA
Aplicaciones de las
pilas
Equilibrado de smbolos
Si es de cierre:
Si la pila est vaca
error.
Si la pila no est vaca:
Si la cima es el correspondiente smbolo de apertura se
extrae.
Si no lo es
error.
Si al final la pila no est vaca
error
Aplicaciones de las
pilas
TDA PILA
Llamadas a subprogramas
Peligro: rebasamiento de la
pila
TDA PILA
Aplicaciones de las
pilas
de
Eliminacin
recursividad
Aplicaciones
de
las
TDA PILA
pilas
Tratamiento de expresiones
aritmticas
Notacin infija: a + b
Notacin prefija: + a b
Notacin postfija: a b +
Problema: distincin de prioridades en notacin
infija. Ej: evaluar a + b * c
Soluciones:
Empleo de parntesis.
Aplicaciones
de
las
TDA PILA
pilas
Tratamiento de expresiones aritmticas:
Aplicaciones
de
las
TDA PILA
pilas
Tratamiento de expresiones aritmticas:
Si no: pop() hasta que en la cima haya uno de menor prioridad, un parntesis de apertura o la pila est vaca. Entonces
se hace un push().
Parntesis:
de clausura ) : se van llevando los operadores de la pila a la salida hasta que se encuentra uno de apertura, que se saca
de la pila.
TDA PILA
informtica
TDA COLA
Definicin
Def: una cola es una lista ordenada de elementos en la que
todas las inserciones se realizan por un extremo (frente o
principio) y las supresiones se realizan por el otro (final).
TDA COLA
Operaciones
bsicas
DEQUEUE: desencolar,
sacar
TDA COLA
Operaciones
TDA COLA
Definicin de
tipos
ELEMENTO = T;
NODO = registro de
info: ELEMENTO;
sgte: puntero a NODO;
fin registro;
POSICION = puntero a
NODO;
COLA = registro de
tam: numerico;
prim, ult:
POSICIN;
fin registro;
TDA COLA
Operacin QUEUE
TDA COLA
Operacin DEQUEUE
TDA COLA
TDA COLA
Definicin de
tipos
ELEMENTO = T;
COLA = registro de
prim, ult, tam: numrico;
arreglo: vector[1..MAX]
de ELEMENTO;
finregistro;
TDA COLA
Operacin QUEUE
Algoritmo QUEUE(C: COLA, X: ELEMENTO, resp: lgico) es
INICIO
Llena?(C,resp);
si resp = cierto entonces {la cola est llena}
Escribir Cola llena;
resp := falso;
sino {la cola no est llena, por lo que procedemos a aadir el elemento}
C.ult := (C.ult + 1) mod MAX; {hacemos que ult avance de forma circular}
C.arreglo[C.ult] := X;
C.tam := C.tam +1; {pues ahora hay un elemento ms en la cola}
finsi;
FIN
TDA COLA
Operacin Dequeue
resp:
TDA COLA