tpu/u_colpar.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Cola de pares de enteros por punteros.
keywords: cola, punteros
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $Id: u_colpar.pas 2002/04/25 15:57 mstorti Exp mstorti $}
unit u_colpar ;
interface
type
par = record
a: integer;
b: integer
end;
tipo_elemento = par;
ptipo_elemento = ^tipo_elemento;
ptipo_celda = ^tipo_celda;
tipo_celda = record
elemento : tipo_elemento;
sig : ptipo_celda
end;
colapar = object
private
ant, post : ptipo_celda;
procedure ERROR (s: string);
public
procedure ANULA;
procedure PONE (x: tipo_elemento);
procedure QUITA;
function VACIA: boolean;
function FRENTE: ptipo_elemento;
end;
implementation
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure colapar.ERROR (s:string);
begin
write ('error: ');
writeln (s);
halt;
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure colapar.ANULA;
begin
new (ant);
ant^.sig := nil;
post := ant;
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure colapar.PONE (x: tipo_elemento);
begin
new (post^.sig);
post := post^.sig;
post^.elemento := x;
post^.sig := nil;
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure colapar.QUITA;
begin
if ( VACIA ) then
ERROR ('la cola esta vacia')
else begin
ant := ant^.sig
end ; {if}
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
function colapar.VACIA : boolean;
begin
VACIA := ( ant = post );
end;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
function colapar.FRENTE : ptipo_elemento;
begin
if ( VACIA ) then
ERROR (' la cola esta vacia')
else begin
FRENTE := @(ant^.sig^.elemento);
end ; {if}
end;
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.