Sunteți pe pagina 1din 10

Cola

Implementada mediante una


Lista Doblemente Ligada
Circular Con Encabezado Dummy

©® Dr. Alfredo Gutiérrez Hdez. 1


Frente Final

Frente

Final

©® Dr. Alfredo Gutiérrez 2


typedef ______ tipo_dato;

typedef struct tipo_nodo {


tipo_dato elem;
struct tipo_nodo *ant;
struct tipo_nodo *sig;
} tipo_nodo;

typedef tipo_nodo tipo_cola;

typedef tipo_nodo *tipo_pos;

©® Dr. Alfredo Gutiérrez 3


P

función: inicializa
P recibe: cola
regresa: nada
cola.ant = cola
cola.sig = cola

©® Dr. Alfredo Gutiérrez 4


P

función: vacia
P recibe: cola
regresa: booleano
¿cola.sig = cola?
Sí: regresa verdadero
No: regresa falso

©® Dr. Alfredo Gutiérrez 5


Enqueue
aux

P e

aux

P e

aux

P e

©® Dr. Alfredo Gutiérrez 6


P

función: enqueue
recibe: elemento, cola
regresa: nada

P aux = nuevo nodo


aux→elem = elem

aux→ant = cola.ant
aux→sig = cola
cola.ant →sig = aux
cola.ant = aux

©® Dr. Alfredo Gutiérrez 7


Dequeue

aux

aux

©® Dr. Alfredo Gutiérrez 8


P

función: dequeue
recibe: cola
regresa: nada
P ¿vacia(cola)?
Si: terminar
No: aux = cola.sig
cola.sig → sig → ant = cola
cola.sig = cola.sig → sig
liberar aux

©® Dr. Alfredo Gutiérrez 9


P

función: front
P recibe: cola
regresa: elemento
¿vacia(cola)?
Si: ¡Error de excepción!
Insuficiencia de datos
Terminar

No: regresar cola.sig → elem

©® Dr. Alfredo Gutiérrez 10

S-ar putea să vă placă și