如何将这些节点作为有向图连接?

时间:2017-04-14 04:44:22

标签: c++ graph

如何使用向量将这些节点连接为有向图?另外,我怎么能让它只通过每个边缘一次(欧拉电路)。

<option value="1">Option 1</option>
<option value="2">Option 2</option>

2 个答案:

答案 0 :(得分:0)

为了制作边缘,您需要每个节点的边缘列表。您已在conncection的{​​{1}}成员中拥有该内容。

您只需要添加到列表中即可。所以,您可以执行以下操作:

class node

如果你持有一个引用而不是一个对象的副本会更好。它会节省内存。 因此,您可以围绕此逻辑定义成员函数。

答案 1 :(得分:0)

尝试类似的方法,使用地址参考

添加到节点的连接
class node
{
public:
    string a;
    vector<node> connect;
    node(string b)
    {
        a = b;
    }

    void add_connect(node &n)
    {
        connect.push_back(n);
    }

    void print()
    {
        cout << "value: " << a << endl;
    }

    void print_connection()
    {
        for each (node var in connect)
        {
            cout << "conection of " << a << ": ";
            var.print();
        }
    }
};


    int main(int argc, char*argv[])
{
    node A("A"),B("B"), C("C");
    vector<node> AllNodes;
    AllNodes.push_back(A);
    AllNodes.push_back(B);
    AllNodes.push_back(C);

    A.add_connect(B);
    B.add_connect(C);

    A.print();
    A.print_connection();

    B.print();
    B.print_connection();
}