gpt4 book ai didi

algorithm - 节点连接情况的良好类设计是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:29:53 24 4
gpt4 key购买 nike

我想像旅行商问题一样设计一张 map 。
有许多节点,一些连接到另一个。
一个节点可以连接到许多其他节点。

我设计了一些,哪个更好?或者也许还有其他更好的设计?
1.)

class Node {
private int ID;
private int position-x;
private int position-y;
}
class Connection {
private int ID;
private Node first;
private Node second;
public void ConnectTwoNodes( Node a, Node b ) { ... }
}

2.)

class Node {
private int ID;
private int position-x;
private int position-y;
private ArrayList<Node> anotherNodes; // array of connected nodes
public void ConnectTo( Node another ) { ... }
}

最佳答案

您的语言似乎是 C++。你的解决方案1.存在以下问题:

  • Connection 类似乎“聚合”了节点。它应该是 OOspeak 中的一个关联(一个指向 Node 的指针,以使其对凡人而言易于理解)
  • Connection 对象绝对没有存在的理由,除非它连接 2 个节点。所以 ConnectTwoNodes 的功能属于构造函数。换句话说,将其重命名为 Connection。

在您的第二个解决方案中,一个节点似乎也包含其他节点。但实际上它们是独立存在的。同样,您需要关联或指向其他节点的指针。

我实际上更喜欢 1. 方法。或带有矩阵的非 OO 解决方案,一个轴上有“从”节点,另一个轴上有“到”节点。它还允许您处理可能从纽约到德克萨斯州巴黎但反之亦然的情况,因为下午没有更多航类。换言之,方向图。

关于algorithm - 节点连接情况的良好类设计是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com