Grafo

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (320 palavras )
  • Download(s) : 0
  • Publicado : 5 de abril de 2013
Ler documento completo
Amostra do texto
TRABALHO DE GRAFOS
PROFESSOR: ROBERTO ARAÚJO
ALUNO: WESLEY DE OLIVEIRA BARBOSA MATRICULA:10100001501
Linguagem: C++
Biblioteca: Boost Graph Library
A Boost Graph Library é umabiblioteca para C++ que como base de aplicação os seguintes algoritmos:
* Busca em profundidade (depth-first search)
* Busca em amplitude ou largura (breadth-first search)
* Busca de custouniforme (uniform-cost search)

O algoritmo abaixo mostra a implementação de uma lista de arestas que tem como saída os caminhos mais curtos entre 2 vértices.
Examplo: Aplicação do algoritmo deBellman-Ford para uma edge_list.
enum { u, v, x, y, z, N };
char name[] = { 'u', 'v', 'x', 'y', 'z' };
typedef std::pair<int,int> E;E edges[] = { E(u,y), E(u,x), E(u,v),
E(v,u),
E(x,y), E(x,v),
E(y,v), E(y,z),E(z,u), E(z,x) };
int weight[] = { -4, 8, 5,
-2,
9, -3,7, 2,
6, 7 };
typedef boost::edge_list<E*> Graph;
Graph g(edges, edges + sizeof(edges) / sizeof(E));std::vector<int> distance(N, std::numeric_limits<short>::max());
std::vector<int> parent(N,-1);
distance[z] = 0;parent[z] = z;
bool r = boost::bellman_ford_shortest_paths(g, int(N), weight,
distance.begin(),parent.begin());
if (r)
for (int i = 0; i < N; ++i)
std::cout << name[i] << ": "...
tracking img