Implementação de grafos com lista e matriz de adjacência, com suporte a BFS, DFS e Dijkstra.
- Compilador
g++com suporte a C++17
Linux (Ubuntu/Debian):
sudo apt update && sudo apt install build-essentialmacOS:
xcode-select --installWindows: Instale o MinGW-w64 e adicione ao PATH.
.
├── Grafo.h
├── GrafoLista.h / GrafoLista.cpp
├── GrafoMatriz.h / GrafoMatriz.cpp
├── GrafoIO.h / GrafoIO.cpp
├── Busca.h / Busca.cpp
├── main.cpp
└── testes.cpp
g++ -std=c++17 -Wall -o grafo \
main.cpp GrafoLista.cpp GrafoMatriz.cpp GrafoIO.cpp Busca.cppg++ -std=c++17 -Wall -o testes \
testes.cpp GrafoLista.cpp GrafoMatriz.cpp GrafoIO.cpp Busca.cpp./grafo # programa principal (Linux/macOS)
./testes # testes automatizadosgrafo.exe # Windows
testes.exeO programa aceita carregar grafos a partir de arquivos .txt no seguinte formato:
V A D P
Ao Ad [Ap]
Ao Ad [Ap]
...
| Campo | Descrição |
|---|---|
V |
Número de vértices |
A |
Número de arestas |
D |
Direcionado: 0 = não, 1 = sim |
P |
Ponderado: 0 = não, 1 = sim |
Ao |
Índice do vértice de origem |
Ad |
Índice do vértice de destino |
Ap |
Peso da aresta (somente se P = 1) |
Exemplo — grafo não direcionado, ponderado, 3 vértices, 2 arestas:
3 2 0 1
0 1 5.0
1 2 3.0