создание функции addvertex во взвешенном графике - PullRequest
0 голосов
/ 09 мая 2018

ниже - мой текущий код, и у меня возникают проблемы с реализацией функции addvertex, я не слишком уверен, с чего начать, так как я довольно новичок в c ++, любая помощь будет принята. Мне сказали, что использование карты будет самым простым способом сделать это.

график должен вычислять минимальное остовное дерево, глубину и ширину первого обхода и реализацию итераторов.

функция addvertex добавит переданную вершину в граф (без ребер).

#ifndef WEIGHTED_GRAPH_H
#define WEIGHTED_GRAPH_H

#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <iostream>
#include <unordered_set>
#include <unordered_map>
#include <set>
#include <array>
#include <list>
#include <forward_list>
#include <deque>
#include <map>

template <typename vertex>
class weighted_graph {
    private:
    class graph_iterator {
        private:
        public:
            graph_iterator(const weighted_graph &);
            graph_iterator(const weighted_graph &, size_t);
            ~graph_iterator();
            graph_iterator operator=(const graph_iterator&);
            bool operator==(const graph_iterator&) const;
            bool operator!=(const graph_iterator&) const;
            graph_iterator operator++();
            graph_iterator operator++(int);
            const vertex operator*();
            const vertex* operator->();
    };

    class neighbour_iterator {
        private:
        public:
            neighbour_iterator(const neighbour_iterator&);
            neighbour_iterator(const weighted_graph &, const vertex&);
            neighbour_iterator(const weighted_graph &, const vertex&, size_t);
            ~neighbour_iterator();
            neighbour_iterator operator=(const neighbour_iterator& it);
            bool operator==(const neighbour_iterator&) const;
            bool operator!=(const neighbour_iterator&) const;
            neighbour_iterator operator++();
            neighbour_iterator operator++(int);         
            const std::pair<vertex, int> operator*();
            const std::pair<const vertex, int>* operator->();
    };

    public:


    weighted_graph(); 
    ~weighted_graph();

    void add_vertex(const vertex&);
...