Java中的节点使用哪种数据结构?

时间:2013-11-22 01:15:04

标签: java data-structures nodes

我想创建一个类节点,类Edge和类Graph。在类节点中,必须使用一些数字作为输入来创建节点。另外,我希望这个类有方法可以改变节点的不同属性。此外,它必须包含通过Edge从其相邻节点发送和接收信息的方法。这些信息接收和发送方法应具有控制信息流的规定。

我不确定用于节点的数据结构是否满足这些要求。

4 个答案:

答案 0 :(得分:1)

创建自己的类节点。

节点只是一个对象。给它一些属性(对于你的例子,你可能想要重量和价值)。

public class Node{

    private double weight;
    private String value;
    private ArrayList<Node> edges;


//setters and getters
}

答案 1 :(得分:1)

创建一个具有您想要的所有属性的class Node例如如果您想为Node binary Tree创建Node class,您的 class Node { Node left; Node right; int info; Node(int value) { this.info = value; } //Add more attributes or functionalities } 可能会像。{/ p>

Node class

这是您如何创建{{1}}的一种表示形式。根据您的要求,表示可能会改变,但基本概念保持不变。

答案 2 :(得分:0)

创建一个类Node,其中包含对其他节点的引用列表(在有向图中,这是特别有用的)。边缘实际上并不是创造的“东西” - 它更像是一种连接。

答案 3 :(得分:0)

实现图形的两种最常用方法是使用邻接矩阵或邻接列表。

矩阵方法涉及使用2d数组来确定节点i和节点j是否通过询问node[i][j]是否为真来连接。在太空浪费,但有时间访问。

邻接列表跟踪当前节点的每个相邻节点,这节省了空间但节省了线性时间,以确定节点是否连接到它。

这些文章更好地解释了它:

Matrix

List