Exercícios
- Descomprima o ficheiro
lab11.zip
, fornecido abaixo, que contém quatro ficheiros:GRAPH.h
,GRAPHmat.c
,GRAPHlst.c
eclient.c
. Os ficheirosGRAPH.h
,GRAPHmat.c
eGRAPHlst.c
implementam um ADT grafo (não dirigido), utilizando matriz de adjacências e listas de adjacências, respectivamente. O ficheiroclient.c
implementa um cliente que utiliza o ADT grafo. AMakefile
fornecida permite gerar dois executáveis:graphmat
egraphlst
. Analise cuidadosamente todos o ficheiros fornecidos. - Modifique os ficheiros
GRAPHmat.c
eGRAPHlst.c
por forma a que o ADT implemente um grafo dirigido. - Complete a função
GRAPHremoveE
, no ficheiroGRAPHlst.c
, que implementa a remoção de um arco. Verifique que o número de arcos final é 10. - Complete a função
GRAPHmaxdegree
, nos ficheirosGRAPHmat.c
eGRAPHlst.c
, que calcula o máximo dos graus de todos os vértices. O grau de um vértice é o número de arcos incidentes nesse vértice. Verifique que o valor do grau máximo calculado é 3. - Complete a função
GRAPHdestroy
, nos ficheirosGRAPHmat.c
eGRAPHlst.c
, que liberta todas as estruturas de dados dinâmicas associadas a um grafo. - Modifique todos os ficheiros necessários, por forma a implementar um grafo pesado, com pesos positivos (superiores a 0).