--- Programa desenvolvido para criação e manipulação de grafos ---
O programa inicia perguntando ao usuário o número de vértices desejadas e se o grafo é direcionado ou não direcionado.
Após essa seleção inicial é possível:
- Mostrar grafo (Matriz ou Lista de adjacência)
- Possibilidade de adicionar e remover arestas
- Checar vizinhança ou predecessores/sucessores de um vértice
- Checar o grau de cada vértice
- Checar se o grafo é simples, regular, completo ou bipartido
- Checar se o grafo é conexo
- Verificar o caminho mínimo a partir de um vértice
- Realizar busca em largura e profundidade
- Realizar ordenação topológica
- Checar a árvore geradora mínima
-
Matriz de adjacência
Exemplo:
-
Lista de adjacência(com o peso de cada aresta entre parênteses)
Exemplo:
Além das funções de propósito geral, a "Atividade 3" busca resolver o problema de falta de disponibilidade de médicos em períodos de férias garantindo que haja pelo menos um médico de plantão em cada dia de períodos especiais, como feriados.
Para isso é criado um novo grafo, independente do grafo gerado através das outras funções.
Essa funcionalidade pode ser acessada ao escolher a opção 16 no menu de grafos direcionados.
O algoritmo funciona com o usuário inserindo a quantidade de médicos, seus dias disponíveis, os dias que englobam períodos de férias e a quantidade máxima de dias que o médico pode cobrir. Abaixo está um exemplo de saída, quando o programa confirma a possibilidade de alocação dos médicos: