-
Notifications
You must be signed in to change notification settings - Fork 0
/
grafo.h
62 lines (47 loc) · 1.13 KB
/
grafo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* File: grafo.h
* Author: ander
*
* Created on 26 de Maio de 2019, 09:44
*/
#ifndef GRAFO_H
#define GRAFO_H
#include <iomanip>
#include<iostream>
#define MAX_TAM 8
#define INF 9999
using namespace std;
struct grafo {
int **g;
int ordem;
};
typedef grafo Grafo;
/*Implementação para Matriz de Adjacência*/
void inicializaGrafo(Grafo &G);
int **criaMatrizAdj(int n);
void insereAresta(Grafo &G, int a, int b);
void insereArestaPonderada(Grafo &G, int a, int b, int w);
void buscaProfundidadeRec(int **G, bool *visitado, int inicio);
void dfs(int **M, bool *visitado, int inicio);
void buscaProfundidade(int **M, int inicio);
void buscaEmLargura(Grafo G, int inicio);
void dijkstra(int **M, int inicio, int custo[], int rota[]);
bool grafoConexo(Grafo G);
int componentesConexos(Grafo G);
void imprimeGrafo(Grafo G);
/* END */
/*Implementação para Lista de Adjacência*/
struct No {
int v;
No *prox;
};
struct grafoLista {
No *adj;
int ordem;
};
typedef grafoLista GL;
void iniciaGrafoLista(GL &G, int ordem);
void insereArestaGL(GL &G, int a, int b);
void imprimeGrafoL(GL G);
/* END */
#endif /* GRAFO_H */