Add remove and contain functions
This commit is contained in:
@@ -12,13 +12,19 @@ class Graph {
|
|||||||
public:
|
public:
|
||||||
~Graph();
|
~Graph();
|
||||||
|
|
||||||
// Add edge between v and u
|
// Add edge e(u,v)
|
||||||
virtual void insert(const T& v, const T& u);
|
virtual void insert(const T& u, const T& v);
|
||||||
|
|
||||||
// Number of vertices
|
// Return true if e(u,v) exists
|
||||||
|
virtual bool contains(const T& u, const T& v);
|
||||||
|
|
||||||
|
// Remove edge e(u,v)
|
||||||
|
virtual void remove(const T& u, const T& v);
|
||||||
|
|
||||||
|
// Return num. of vertices
|
||||||
virtual std::uint16_t V();
|
virtual std::uint16_t V();
|
||||||
|
|
||||||
// Number of edges
|
// Return num. of edges
|
||||||
virtual std::uint16_t E();
|
virtual std::uint16_t E();
|
||||||
|
|
||||||
// Output graph
|
// Output graph
|
||||||
@@ -36,10 +42,20 @@ Graph<T>::~Graph() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline void Graph<T>::insert(const T& v, const T& u) {
|
inline void Graph<T>::insert(const T& u, const T& v) {
|
||||||
Graph<T>::vertices.insert(v);
|
|
||||||
Graph<T>::vertices.insert(u);
|
Graph<T>::vertices.insert(u);
|
||||||
Graph<T>::adjMatrix[v].insert(u);
|
Graph<T>::vertices.insert(v);
|
||||||
|
Graph<T>::adjMatrix[u].insert(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
bool Graph<T>::contains(const T& u, const T& v) {
|
||||||
|
return adjMatrix[u].contains(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void Graph<T>::remove(const T& u, const T& v) {
|
||||||
|
adjMatrix[u].erase(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|||||||
Reference in New Issue
Block a user