Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UNIT uCola;
- INTERFACE
- USES uElem;
- TYPE
- TAlmacen = ^TNodo;
- TNodo = RECORD
- info:TElem;
- sig:TAlmacen;
- END;
- TCola = RECORD
- cab,fin:TAlmacen;
- END;
- PROCEDURE CrearColaVacia (VAR cola:TCola);
- PROCEDURE InsertarCola (VAR cola:TCola; elem:TElem);
- PROCEDURE Eliminar (VAR cola:TCola);
- PROCEDURE Cabecera (cola:TCola; VAR elem:TElem);
- PROCEDURE Ultimo (cola:TCola; VAR elem:TElem);
- FUNCTION Pertenece (cola:TCola; elem:TElem):boolean;
- FUNCTION EsColaVacia (cola:TCola):boolean;
- PROCEDURE CopiarCola (cola:TCola ; VAR colaCopia:TCola);
- IMPLEMENTATION
- PROCEDURE CrearColaVacia (VAR cola:TCola);
- BEGIN
- cola.cab := NIL;
- cola.fin := NIL;
- END;{CrearColaVacia}
- PROCEDURE InsertarCola (VAR cola:TCola; elem:TElem);
- VAR
- aux:TAlmacen;
- BEGIN
- new(aux);
- Asignar(aux^.info,elem);
- aux^.sig := NIL;
- IF EsColaVacia(cola) THEN
- BEGIN
- cola.cab := aux;
- cola.fin := aux;
- END {IF}
- ELSE
- BEGIN
- cola.fin^.sig := aux;
- cola.fin := aux;
- END;{ELSE}
- END;{CrearColaVacia}
- PROCEDURE Eliminar (VAR cola:TCola);
- VAR
- aux:TAlmacen;
- BEGIN
- IF NOT(EsColaVacia(cola)) THEN
- BEGIN
- aux := cola.cab;
- cola.cab := cola.cab^.sig;
- dispose(aux);
- END;{IF}
- END;{CrearColaVacia}
- PROCEDURE Cabecera (cola:TCola; VAR elem:TElem);
- BEGIN
- IF NOT(EsColaVacia(cola)) THEN
- Asignar(elem , cola.cab^.info);
- END;{CrearColaVacia}
- PROCEDURE Ultimo (cola:TCola; VAR elem:TElem);
- BEGIN
- IF NOT(EsColaVacia(cola)) THEN
- Asignar(elem , cola.fin^.info);
- END;{CrearColaVacia}
- FUNCTION Pertenece (cola:TCola; elem:TElem):boolean;
- VAR
- check:boolean;
- BEGIN
- check := FALSE;
- WHILE (check=FALSE) AND NOT(EsColaVacia(cola)) DO
- BEGIN
- check := Iguales(cola.cab^.info , elem);
- cola.cab := cola.cab^.sig;
- END;{WHILE}
- Pertenece := check;
- END;{CrearColaVacia}
- FUNCTION EsColaVacia (cola:TCola):boolean;
- BEGIN
- EsColaVacia := (cola.cab = NIL);
- END;{CrearColaVacia}
- PROCEDURE CopiarCola (cola:TCola ; VAR colaCopia:TCola);
- VAR
- aux:TAlmacen;
- elem:TElem;
- BEGIN
- WHILE NOT(EsColaVacia(cola)) DO
- BEGIN
- Cabecera(cola,elem);
- IF EsColaVacia(colaCopia) THEN
- BEGIN
- new(aux);
- Asignar(aux^.info,elem);
- aux^.sig := NIL;
- colaCopia.cab := aux;
- colaCopia.fin := aux;
- END{IF}
- ELSE
- BEGIN
- new(aux);
- Asignar(aux^.info,elem);
- aux^.sig := NIL;
- colaCopia.fin^.sig := aux;
- colaCopia.fin := aux;
- END;{ELSE}
- cola.cab := cola.cab^.sig;
- END;{WHILE}
- END;{CrearColaVacia}
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement