Colas
Colas dinámicas
 
Colas estáticas
Administrador
Plan de Curso
Modulo I
Unidad1
Unidad2
Modulo II
Unidad3
Unidad4
Modulo III

Unidad5

Unidad6
Foros
Chat

Blogs

Pascal

Descarga

Firefox

Email

Link

Podemos representar las colas mediante arrays.

si la cola esta vacia

eliminar elementos

añadir elementos.

frente=nulo o bien

frente «--frente+1 o bien

final --»final+1 o bien

f «-- 0

f « --f-1

r «--r+1

Representación mediante un array o lista enlazada

const

Max= <expresión> // longitud máxima

Declaración

Tipo

registro:tipo_elemento

fin_registro

arrays [1..Max] de tipo_elemento:arr

var

entero:frente, final

arr: c // la cola se define como un array

tipo_elemento:elemento

Procedimiento Inicializar (S entero:frente,final)

inicio

frente «-- 0

final « -- 0

fin_procedimiento

El procedimiento para la inserción de un nuevo elemento deberá verificar, en primer lugar, que la cola no esta totalmente llena y, por consiguiente, no se producirá error de desbordamiento.

Esto se produce cuando final=Max.

La representación se puede expresar:

Colas mediante arrays


Procedimiento meter (E/S entero: final; S entero:frente;

E/S arr:c; E tipo_elemento :elemento)

inicio

Si final=0 entonces

frente «-- 1

fin_si

final «-- final + 1

c[final] «-- elemento

fin_procedimiento

Para eliminar un elemento será preciso verificar, en primer lugar, que la cola no está vacía.

 


Quitar o sacar

Procedimiento Sacar (E/S entero: frente,final; E arr:cl;

S tipo_elemento:elemento)

inicio

elemento«-- c[frente]

frente «-- frente+1

si frente = final+ 1 entonces

frentei «-- 0

final «-- 0

fin_si

fin_procedimiento

Nota: la cola estara vacia cuando frente =0


Vacia o ColaVacia

lógico funcion vacia (E entero:frente)

inicio

devolver (frente=0 )

fin_función

Nota. Esta implementación tiene el inconveniente de que puede ocurrir que la variable final llegue al valor máximo de la tabla, con lo cual no se pueda seguir añadiendo elementos a la cola, aunque queden posiciones libres.


Existen diversas soluciones a este problema:

1º Retroceso

Consiste en mantener fijo a 1 el valor de frente, realizando un desplazamiento de una posición para todas las componentes ocupadas cada vez que se efectúa una supresión.

2º Reestructuración.

Cuando final llega al maximo de elementos se desplazan las componentes ocupadas hacia atras las posiciones para que el principio coincida con el principio de la tabla.

3º Mediante un array circular

Un arrays circular es aquel en el que se considera que la componente primera sigue a la componente última.

Esta implementación obliga a dejar siempre una posición libre para separar el principio y el final del array.

 

Llega al valor maximo de la tabla no se puede seguir añadiendo elemento


Ejercicio flash dinámico

 

Google
Imprimir
Colas
Colas dinámicas

Elaborado por ; Dinora Soto Castillo,. Dinora334@hotmail.com, dinorasoto2004@yahoo.comWebMaster : CIIUNA
WebMaster : CIIUNA.Optimizado para Internet Explorer y resolución 800x600.