-
Notifications
You must be signed in to change notification settings - Fork 0
/
Edge.h
71 lines (59 loc) · 1.66 KB
/
Edge.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
62
63
64
65
66
67
68
69
70
71
//
// Created by manue on 08/05/2023.
//
#ifndef TSP_EDGE_H
#define TSP_EDGE_H
class Vertex;
class Edge {
public:
/**@brief Construtor com parâmetros. Constrói uma aresta com origem, destino e distância.
*
* Complexidade Temporal: O(1)
* @param orig origem
* @param dest destino
* @param dist distância
*/
Edge(Vertex *orig, Vertex *dest, double distance);
/**@brief Compara a aresta e edge quanto à sua distância.
*
* Complexidade Temporal: O(1)
* @param edge aresta com a qual comparar
* @return true se a distância da aresta é inferior à de edge, false caso contrário
*/
bool operator<(const Edge &edge) const;
/**@brief Retorna a origem da aresta.
*
* Complexidade Temporal: O(1)
* @return origem da aresta
*/
Vertex *getOrig() const;
/**@brief Retorna o destino da aresta.
*
* Complexidade Temporal: O(1)
* @return destino da aresta
*/
Vertex *getDest() const;
/**@brief Retorna a distância da aresta.
*
* Complexidade Temporal: O(1)
* @return distância da aresta
*/
double getDistance() const;
private:
Vertex *orig;
Vertex *dest;
double distance;
};
struct edgeCmp {
/**Função de comparação para a ordenação da lista de adjacências de um vértice.
*
* Complexidade Temporal: O(1)
* @param edge1 aresta 1
* @param edge2 aresta 2
* @return true se a distância da aresta 1 é menor do que a distância da aresta 2, false caso contrário
*/
bool operator()(const Edge *edge1, const Edge *edge2) const {
return *edge1 < *edge2;
}
};
#endif //TSP_EDGE_H