Grafos en c++
#include // ... para tener acceso a cout, cin, endl
#include // ... para tener acceso a la clase string
#include // ...para tener acceso a NULL, system y exit
// Para no tener que utilizar "std::", por ejemplo "std::cout", "std::cin", etc.
using namespace::std;
// Constantes utilizadas para el estado del arco(desconectado) y vertice (marcado o no)
const int DESCONECTADO = -1;
const int MARCADO = 1;
const int DESMARCADO = 0;
// La informacion de cada vertice se almacena en una estructura de tipo:
structInfo {
char nombre;
int marcado;
};
// Estructura para almacenar todos los componentes de un grafo
struct Grafo {
int** mat;
int num_vertices;
Info* info;
};
// Estructura desoporte para el proceso de arcos (vertice origen y vertice destino)
struct Arco {
int a;
int b;
};
// Declaraciones de todas las funciones utilizadas en el programa
int CostoArco(Grafo g,Arco arco);
void DesmarcarGrafo(Grafo g);
void DesmarcarVertice(Grafo g);
int* Dijkstra (Grafo g, int v);
void ElimArco(Grafo g);
void ImprimirCaminosMinimos(Grafo g);
void ImprimirMatriz(Grafo g);void ImprimirVertices(Grafo g);
void InfoVertice(Grafo g);
Grafo InicGrafo(int num_vertices);
void InsArco(Grafo g);
Grafo InsVertice(Grafo g, Info info);
void LibGrafo(Grafo g);
voidListarSucesores(Grafo g);
bool MarcadoVertice(Grafo g, int vertice);
void MarcarVertice(Grafo g, int vertice);
void OrdenGrafo(Grafo g);
int SiguienteVertice(Grafo g, int costo[]);
Arco ObtArco(intnum_arcos);
int ObtVertice(int num_arcos);
// Funcion principal del programa, presenta el menu y delega las operaciones a las demas funciones
int main()
{
Grafo g; // El grafo utilizado enel programa
Info info; // La informacion sobre el vertice
Arco arco; // El arco a procesar
int vertice; // El vertice a procesar
string linea; // La opcion del usuario como una...
Regístrate para leer el documento completo.