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