Я реализую простой класс графа, используя структуру данных списка смежности. edge
содержит vertex
, а vertex
взамен содержит edge
. Я наконец дошел до этой реализации. Из-за параметров шаблона код немного повторяется. Есть ли способ упростить это?
template <typename T>
struct Edge;
template <typename T>
struct Vertex;
template<typename T>
struct Edge {
Vertex<T>* toVertex;
Edge<T>* nextEdge;
};
template <typename T>
struct Vertex {
T value;
Edge<T>* firstEdge;
};