Monday, October 13, 2008

Colas

Es una estructura de datos lineal donde las eliminaciones de elementos se realizan con uno de sus extremos denominado front(frente) y las insercuiones de elementos se realizan por el otro extremo denominado final o rear.
Las colas son estructuras de datos FIFO(first-in, firt-out) porque el primer dato que se inserto sera el primero en salir de la cola.

=operaciones en una cola=

1.- Push: Es el metodo por el cual se va a agregar un nuevo dato a la cola tomando en cuenta la capacidad maxima de almacenar en la estructura y la posiciones del frente i final de la cola.

Algoritmo:

push(cola, frente, final, max, elemento)
si frente=0 y final=max-1 entonces
imprimir"la cola esta llena", y salir
si no si frente=nulo(-1) entonces
frente<-0
final<-0
si no
final+1
cola[final]=elemento
salir

*Nota: inicializar al principio del programa:
*tamaƱo de la cola
*front=-1
*rear=-1


cola frente final
0 k5 -1->0 -1->4
1 k7
2
3
4

ejemplo> se pide insertar un elemento
si frente =-1, frente y final se ponen en 0 y se guarda el elemento en la cola [0]=5 -1=-1
si frente no es -1, final es igual a final +1 y guardar cola[1]=7 fianl=0+1=1

2.-Pop: es el metodo por el cual se va a sacar o eliminar el primer dato de la cola tomando en cuenta solo la poscion de frente.

Algoritmo:

pop(cola, frente, final, max)
si frente!= nulo(-1) entonces
imprimir "eliminando el dato:", cola[frente]
cola[frente]<=0
si frente=final entonces
frente=nulo(-1)
final=nulo(-1)
si no
frente<-frente+1
si no
imprimir "la cola esta vacia"
salir

3.- Recorrido: es el metodo por el cual se despliega el conenido de la cola, si no hay
ni un elemento, despliega "la cola esta vacia".

Algoritmo:

Recorrido(cola, frente, final, max)
si frente != nulo(-1) entonces
apuntador=frente
repetir mientras apuntador<=final
imprimir "elemento: ", cola[apuntador], "posicion:", apuntador
apuntador =apuntador+1
find el ciclo
si no
imprimir "la cola sta vacia"
salir




4.- Busqueda: este metodo utiliza el recorrido para encontrar el elemento deseado i desplegar un mensaje con la posicion en la que se encuentra, siempre y cuando la busqueda sea exitosa, si no
desplegara el mensaje de que no encontro el elemento. En el caso de que no existan elementos en la cola desplegara "la cola esta vacia".

Algoritmo:

busqueda (cola, frente, final, max, elemento)
si frente != nulo(-1) entonces
apuntador<-frente
repetir mientras apuntador<=final
si elemento= cola[apuntador] entonces
imprimir "dato no ncontrado", eleemtnop, "posicion", apuntador
y salir
si no
apuntador<-apuntador+1
fin del ciclo
imprimir "dato", elemento, "no sta en la cola"
si no
imprimir "la cola esta vacia"
salir

No comments: