type
TipoNodo = 1..NumNodi;
TipoGrafoEtic = record
matr_adiacenza : array [TipoNodo, TipoNodo] of TipoEtichettaArco;
etichette_nodi : array [TipoNodo] of TipoEtichettaNodo
end;
procedure InitGrafoEtic (var grafo: TipoGrafoEtic);
var
i,j : TipoNodo;
begin
for i := 1 to NumNodi do
for j := 1 to NumNodi do
grafo.matr_adiacenza[i,j] := ArcoNonEsiste
end;
function TestEsisteArcoEtic (var grafo: TipoGrafoEtic; i,j: TipoNodo): boolean;
begin
TestEsisteArcoEtic := (grafo.matr_adiacenza[i,j] <> ArcoNonEsiste)
end;
procedure InserArcoEtic (var grafo : TipoGrafoEtic;
i,j : TipoNodo;
etichetta : TipoEtichettaArco);
begin
grafo.matr_adiacenza[i,j] := etichetta
end;
procedure ElimArcoEtic (var grafo: TipoGrafoEtic; i,j: TipoNodo);
begin
grafo.matr_adiacenza[i,j] := ArcoNonEsiste
end;
procedure EtichettaArco (var grafo : TipoGrafoEtic;
i, j : TipoNodo;
var etichetta : TipoEtichettaArco);
begin
etichetta := grafo.matr_adiacenza[i,j]
end;
procedure AssegnaEtichettaNodo (var grafo : TipoGrafoEtic;
i : TipoNodo;
etichetta : TipoEtichettaNodo);
begin
grafo.etichette_nodi[i] := etichetta
end;
procedure EtichettaNodo (var grafo : TipoGrafoEtic;
i : TipoNodo;
var etichetta : TipoEtichettaNodo);
begin
etichetta := grafo.etichette_nodi[i]
end;