Beruflich Dokumente
Kultur Dokumente
A B C MAXFILA
1 2 3 4 5 6 7
frente final
Aplicaciones de las FILAS
El concepto de FILA est ligado a computacin.
Arreglos:
A B C MAXFILA
1 2 3 4 5 6 7
frente final
DESCRIPCION LOGICA DEL Tipo de Dato Abstracto
FILA:
OPERACIONES:
a) CREAR FILA: crea una fila vaca
b) FILA LLENA:
DESCRIPCION: verifica si una fila se encuentra llena
ENTRADAS: la fila que se va a verificar
SALIDAS: valor booleano que indica si la fila esta llena o no
PRECONDICION: la fila a verificar existe
POSTCONDICION: ninguna, la fila NO se modifica
c) FILA VACIA:
DESCRIPCION: verifica si una fila se encuentra vaca
ENTRADAS: la fila que se va a verificar
SALIDAS: valor booleano que indica si la fila esta vaca o no
PRECONDICION: la fila a verificar existe
POSTCONDICION: ninguna, la fila NO se modifica
d) INSERTAR:
DESCRIPCION: agrega un elemento en la Fila
ENTRADAS: la fila a la que se agregar el elemento y el
elemento a insertar
SALIDAS: la fila con un elemento adicional
PRECONDICION: la fila est creada y no est llena
POSTCONDICION: la fila queda con un elemento adicional
agregado por el extremo del FINAL de la fila
e) SACAR:
DESCRIPCION: elimina un elemento en la Fila
ENTRADAS: la fila a la que se va a quitar el elemento
SALIDAS: la fila con un elemento menos y el elemento que se
elimin
PRECONDICION: la fila esta creada y no esta vaca
POSTCONDICION: la fila queda con un elemento menos
eliminado por el extremo del FRENTE de la fila
Diseos para FILAS
W X Y Z
Frente Final
P L M N O
Final Frente
Implementacin de filas utilizando
arreglos
La definicin de una Fila ha de
contener un array para almacenar los
elementos de la fila, y dos referencias o
punteros que mantienen las posiciones
frente y final de la fila.
public class filaEstatica
{
private static final int TAMFILA=10;
private int frente;
private int fin;
int [] fila;
public filaEstatica ()
{ frente=fin=-1;
fila=new int[TAMFILA];
}
PASOS PARA INSERTAR EN UNA FILA
checar espacio
actualizar el apuntador final dependiendo
de:
Caso 1: si es el primer elemento en la fila: Frente
y Fin = 0
Caso 2: si no es el primero pero es el elemento
que est en MAXFILA entonces FIN = 0
Caso 3: ninguna de las anteriores FIN = FIN + 1
insertar el elemento
public boolean insertar (int elemento)
{
boolean x=true;
if(!filaLlena())
{
fin= (fin + 1 )% TAMFILA;
fila[fin]= elemento;
if (frente==-1){frente=0;}
}
else
x=false;
return x;
}
Pasos para eliminar un
elemento de la fila
Checar que la fila no este vaca.
Si no esta vaca:
Sacar el elemento del FRENTE en una variable
Actualizar apuntador FRENTE dependiendo de:
Caso 1: si es el ltimo elemento en la fila: Frente
y Fin = -1
Caso 2: si no es el ltimo pero es el elemento que
est en MAXFILA entonces FRENTE = 0
Caso 3: ninguna de las anteriores FRENTE =
FRENTE + 1
public int quitar()
{
int aux=-1;
if(filaVacia())
{
System.out.println ("no hay elementos para sacar de la fila");
}
else
aux= fila[frente];
if (frente == fin)
{ frente=fin=-1;}
else
{ frente= (frente + 1 )% TAMFILA;}
return aux;
}
public boolean filaVacia()
{
return (frente ==-1)&&(fin==-1);
}