Add remove and contain functions

This commit is contained in:
stefiosif
2022-07-13 23:02:54 +03:00
parent 0f857a6c9e
commit 31ba84dc2a

View File

@@ -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>