jueves, 26 de abril de 2012

COLAS
DEFINICION

Son aquellas que solo tiene 2 operaciones, Push(Inserción) y Pop(Eliminación). Push solo se puede efectuar por un extremo llamado Frente y Pop por el extremo Llamado Final. Sin Embargo se le pueden aplicar todas las operaciónes al igual que a las listas.
 RECORRIDO

Ya que las colas son FIFO(First in - First Out) el Recorrido se hace sacando el primer dato que se inserto hasta que llegue al extremo llamado Final.
COMO FUNCIONA:
En un principio se compara para saber si tiene algĆŗn dato en la Cola, si no es asĆ­ desplegara “Cola VacĆ­a…”. De otra forma compara si Frente es mayor o igual a Final, de esta forma simplemente hace un Recorrido lineal como los anteriores. De otra forma usar Max como bandera para saber cuando empezar a contar de 0 a Final (Ya que sabemos que el Frente despuĆ©s del nodo Final). 
Algoritmo
Recorrido(Cola, Frente, Final, Max)
Si Frente ≠ Nulo
Si Frente ≤ Final, entonces:
Apuntador <-- Frente
Repetir mientras Apuntador ≤ Final
Imprimir Cola[Apuntador]
Apuntador <-- Apuntador + 1
Fin del ciclo
Si no, si Frente > Final, entonces:
Apuntador <-- Frente
Repetir mientras Apuntador ≠ Final
Si Apuntador > Max, entonces:
Apuntador <-- 0
Imprimir Cola[Apuntador]
Apuntador <-- Apuntador + 1
Fin del ciclo
Si no:
Imprimir "Cola VacĆ­a"
Salir 
 DIAGRAMA
 
PUSH
Definición:
Push es simplemente el mƩtodo por el cual va agregando un Dato nuevo a la Cola tomando en cuenta el TamaƱo MƔximo de Capacidad (Max), el Frente y el Final de la Cola.
Primero nos aseguramos que la Cola no este Llena, para que de esta manera sea capaz de insertar un Elemento nuevo. Si no desplegara Cola Llena. DespuƩs compara para determinar las posiciones de Frente y Final y de esta manera poder moverlo con libertad. Ya que determina los valores de Frente y Final, nos Indica que Cola[Final] tomara el valor de Elemento.
  Algoritmo
Push(Cola, Frente, Final, Max, Elemento)
Si Frente = 0 y Final =9, o si Frente = (Final + 1)
Imprimir "Cola Llena" y Salir
Si Frente = Nulo
Frente <-- 0
Final <-- 0
Si no, si Final = Max 
Final <-- 0 
Si no: 
Final <-- Final + 1
Cola[Final] = Elemento 
Salir
DIAGRAMA
 
POP
 Definición:
Pop es simplemente el mƩtodo por el cual va sacando el primer Dato de la Cola (esto se comprueba ya que las Colas son FIFO), para esto toma en cuenta el Frente.
 
Compara para determinar si la cola esta vacĆ­a, de otra forma lo que hace es Imprimir “Eliminando el Dato…”. DespuĆ©s se hacen una series de comparaciones para determinar la nueva posición de Frente, de esa forma el Dato que existĆ­a en Frente es Eliminado.
  
 Algoritmo
Pop(Cola, Frente, Final, Max)
Si Frente ≠ Nulo
Imprimir "Eliminado el Dato..."
Si Frente = Final
Frente = Nulo
Final = Nulo
Si no, si Frente = Max
Frente = 0
Si no:
Frente <-- Frente + 1
Si no:
Imprimir "Cola VacĆ­a" 
Salir
DIAGRAMA
 
Busqueda
Definición:
Este método usa el recorrido para encontrar un Elemento y desplegar un mensaje si la búsqueda es exitosa.
El algoritmo usa bÔsicamente la misma estructura del Recorrido, la única diferencia es que compara cada uno de los Datos con Elemento, de esta forma se da cuenta si este Dato existe en la Cola.
 Algoritmo
Busqueda(Cola, Frente, Fin, Max, Elemento)
Si Frente ≠ Nulo
Si Frente ≤ Final, entonces:
Apuntador <-- Frente
Repetir mientras Apuntador ≤ Final
Si Elemento = Cola[Apuntador]
Imprimir "Dato encontrado..." y Salir
Apuntador <-- Apuntador + 1
Fin del ciclo
Si no, si Frente > Final, entonces:
Apuntador <-- Frente
Repetir mientras Apuntador ≠ Final
Si Apuntador > Max, entonces:
Apuntador <-- 0
Si Elemento = Cola[Apuntador]
Imprimir "Dato encontrado..." y Salir
Apuntador <-- Apuntador + 1
Fin del ciclo
Imprimir "Dato no encontrado..."
Si no:
Imprimir "Cola VacĆ­a"
Salir
Diagrama
 
Eliminacion
Definición:
Este mƩtodo busca un Dato dentro de la cola y lo elimina.
 
Este Método es la mezcla de todos en uno, Recorrido, Búsqueda, Pop y Push. Debido que a busca el Dato haciendo un Recorrido, y en el proceso copia todos los Datos que no son en un Arreglo Temp, para después meterlos a la Cola original, esto lo hace hasta encontrar el dato deseado que posteriormente lo Elimina.
Diagrama
      

No hay comentarios:

Publicar un comentario