Upload
guest39b2f2
View
740
Download
2
Embed Size (px)
Citation preview
UNIVERSIDAD PEDAGOGICA EXPERIMENTAL LIBERTADOR.INSTITUTO PEDAGOGICO BARQUISIMETO “LUIS BELTRAN
PRIETO FIGUEROA”BARQUISIMETO EDO. LARA
Es un método de estructuración datos usando la forma FIFO (First In, First Out - primero en entrar, primero en salir), que permite almacenar y recuperar datos.La inserción de elementos en una cola se realiza en un extremo, y la extracción desde el otro extremo.
Esperando para entrar a ver un partido de béisbol.Esperando en el cine para ver una película.Personas comprando en un supermercado.
Las colas se utilizan en sistemas informáticos, transporte y operaciones de investigación (entre otras), donde los objetivos, personas o eventos son tomadas como datos que se almacenan y se guardan mediante colas para su posterior procesamiento.
DEFINICION DE COLA
EJEMPLO DE UNA COLA
UTILIDA DE COLA
Implementación estática: se representa como un vector (arreglo) y dos números. El numero de “frente” que da la posición del primero en salir y el numero “final” me da la posición de la ultima en encontrar (FIFO).
Implementación dinámica: cuando se implementa una cola de manera dinámico, la dimensión de esto puede crecer o disminuir durante la ejecución del programa.
Características de una cola.
Cola circular 1.-) Es una lista lineal en la que el último nodo a punto al primero. Las listas circular evitan excepción en la operación que se realiza sobre ellos. No existe casos especiales, cada nodo siempre tiene uno anterior y uno siguiente.
2.-) En algunas listas circular e añade un nodo especial de sebera, de ese modo se evita la única excepción posible, le de que la lista este vacío.Cola listo1.-) es un conjunto de lentos llamados nodos en los que cada uno de ellos contiene un doto y también la dirección del siguiente nodo y el ultimo no apunto a nodo.
2.-) es las listas abierta existe un nodo especial: normalmente dinero que nuestro listo es un puntero a ese primer nodo y llamaremos a ese nodo la cabeza de la lista. Eso es porque median ese único puntero podemos acceder a todo la lista.
3.-)cuando se trabajo con cola listo con memoria denomino el puntero que se uso para acceder a la lista vale NULL, se dice que la cola esta vacía.
TIPOS DE COLA
CONST MAXIMO=20; TYPE TIPOCOLA=RECORD; DATOS:ARRAY[1..MAXIMO] OF INTEGER; FINAL:1.. MAXIMO; END; VAR COLA: TIPOCOLA; PROCEDURE INICOLA;BEGIN COLA.FINAL:=0; END;
PROCEDURE INSERTAR; BEGIN INC (FINAL); COLA.DATOS[COLA.FINAL]:=ELEMENTO; END;
CREAR
SE CREA LA COLA VACIA
CARGAR
(AÑADIR, ENTRAR, PUSH): SE AÑADE UN ELEMENTO
PROCEDURE ELIMINAR; BEGIN for k:=1 to COLA.FINAL-1 do COLA.DATOS[k]:=COLA.DATO[K+1];
(SACAR, SALIR, POP): SE ELIMINA EL ELEMENTO
ELIMINAR
PROCEDURE INSERTAR; BEGIN INC (FINAL); COLA.DATOS[COLA.FINAL]:=ELEMENTO; END;
TYPE PUNTERO:=^NODO; NODO:= RECORD; INFO:= INTEGER; SIG := PUNTERO; END;
PROCEDURE crearLista;BEGINnew(lista); lista^_nodo:= 1; lista^.siguiente=nil;END;
Se crea la cola vacía
crearPROCEDURE INSERTAR;BEGIN IF COLA_VACIA(COLA) THEN BEGIN NEW(AUX); AUX^.DATO:=ELEM; COLA.FINAL^.SIG=AUX; COLA.FINAL:=AUX; END ELSE BEGIN NEW(AUX); AUX^.DATO=ELEM; COLA.FINAL:=AUX; END; END;
(AÑADIR, ENTRAR, PUSH): SE AÑADE UN ELEMENTO
cargar
PROCEDURE Borrar; Var Igual, anterior:=COLA; Begin { se debe buscar la posición del elemento a borrar }
Actual:=l, Anterior:=l; While (actual <> nil) and (actual^.clave <> elem) do Begin Anterior:= actual; Actual:=actual^.siguiente; End; If (actual <> nil) and (actual^. Clave<> elem) then Begin If (anterior=actual) then L:=actual^. Sig { borrar el primero } Else Anterior^. Sig:= actual^.sig; Dispose(actual); End; End;
(SACAR, SALIR, POP): SE ELIMINA EL ELEMENTO
ELIMINAR