如何使用向量将这些节点连接为有向图?另外,我怎么能让它只通过每个边缘一次(欧拉电路)。
<option value="1">Option 1</option>
<option value="2">Option 2</option>
答案 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();
}