Faça um programa em linguagem C que represente internamente um dado grafo simples e não orientado, G = (V, E), como listas de adjacências. Por exemplo, considere o grafo ilustrado na figura abaixo, você poderá optar por implementar um vetor estático de uma estrutura que contem o endereço do início de cada lista de adjacência, ou optar pela implementação de uma lista ligada (vertical) com cada no contendo seus apontadores para suas respectivas listas de adjacência.
O programa deve conter as seguintes opções de menu:
- Inserir Vértices
- Inserir Arestas
- Visualizar Grafo
- Remover Vértices
- Remover Arestas
- Sair
Lista de itens que serão avaliados:
- Utilizou estrutura de dados em listas de adjacências (alocação dinâmica de memória) para representar o grafo?
- Inseriu e removeu vértices no grafo corretamente? Permitiu a inserção de vértices com identificação repetida?
- Inseriu e removeu arestas do grafo corretamente? Permitiu a inserção de arestas repetidas?
- Visualiza-se corretamente o grafo?
- A entrada de dados e saída de dados é amigável?
- Implementou funções parametrizadas? Ex. inserirVertice(vert), inserirAresta(vert1,vert2).
- O programa travou em tempo de execução?
Outro exemplo de grafo de entrada para teste do programa:
- Prof. Luciene de Oliveira Marin