program DriverGrafi;
const
NumNodi = 10;
type
TipoNomeFile = string[128];
var
nome_file : TipoNomeFile;
grafo : TipoGrafo;
i, j : TipoNodo;
scelta : char;
lista : TipoListaSucc;
begin
InitGrafo(grafo);
repeat
writeln('Opzioni:');
writeln('Re-Inizializza Grafo : 0');
writeln('Test esistenza arco : 1');
writeln('Inserisci arco : 2');
writeln('Elimina arco : 3');
writeln('---------------------------');
writeln('Visita Ric. in prof. : 4');
writeln('Visita in profondita : 5');
writeln('Visita in ampiezza : 6');
writeln('---------------------------');
writeln('Stampa grafo su schermo : 7');
writeln('Leggi grafo da file : 8');
writeln('Scrivi grafo su file : 9');
writeln('---------------------------');
writeln('FINE : F');
write('Scelta: ');
readln(scelta);
case scelta of
'0' : DistruggeGrafo(grafo);
'1' : begin
write('Esistenza. Scrivere Arco i j da testare: ');
readln(i,j);
if TestEsisteArco(grafo,i,j) then
writeln('Arco (',i,',',j,') esiste')
else
writeln('Arco (',i,',',j,') NON esiste')
end;
'2' : begin
write('Inserimento. Scrivere Arco i j da inserire: ');
readln(i,j);
InserArco(grafo,i,j)
end;
'3' : begin
write('Test Eliminazione. Scrivere Arco i j da eliminare: ');
readln(i,j);
ElimArco(grafo,i,j)
end;
'4' : begin
write('Visita ricorsiva in prof. Scrivere Nodo i di partenza: ');
readln(i);
VisitaRicInProfondita(grafo,i)
end;
'5' : begin
write('Visita in profondita. Scrivere Nodo i di partenza: ');
readln(i);
VisitaInProfondita(grafo,i);
end;
'6' : begin
write('Visita in ampiezza. Scrivere Nodo i di partenza: ');
readln(i);
VisitaInAmpiezza(grafo,i);
end;
'7' : begin
writeln;
for i:=1 to NumNodi do
begin
write(i:2,':');
lista := grafo.vett_lista_succ[i];
while lista <> NIL do
begin
write('->', lista^.successore:2, ' ');
lista := lista^.next
end;
writeln
end
end;
'8' : begin
write('Scrivi il nome del file di ingresso: ');
readln(nome_file);
LeggeGrafoDaFile(grafo,nome_file)
end;
'9' : begin
write('Scrivi il nome del file di uscita: ');
readln(nome_file);
ScriveGrafoSuFile(grafo,nome_file)
end;
end;
readln;
until (scelta = 'F') or (scelta = 'f')
end.