Java中的节点使用哪种数据结构?
我想创建一个类节点、类边和类图。在类节点中,它必须以一些数字作为输入来创建节点。另外,我希望这个类有一些方法,可以在其中更改节点的不同属性。此外,它还必须包含通过边缘从相邻节点发送和接收信息的方法。这些信息接收和发送方法应具有控制信息流的规定Java中的节点使用哪种数据结构?,java,data-structures,nodes,Java,Data Structures,Nodes,我想创建一个类节点、类边和类图。在类节点中,它必须以一些数字作为输入来创建节点。另外,我希望这个类有一些方法,可以在其中更改节点的不同属性。此外,它还必须包含通过边缘从相邻节点发送和接收信息的方法。这些信息接收和发送方法应具有控制信息流的规定 我不确定节点使用哪种数据结构来满足这些要求。创建自己的类节点 节点只是一个对象。给它一些属性(例如,您可能需要权重和值) 公共类节点{ 私人双倍重量; 私有字符串值; 私有数组列表边; //二传手和接球手 } 创建一个类节点,其中包含对其他节点的引用列表(
我不确定节点使用哪种数据结构来满足这些要求。创建自己的类节点 节点只是一个对象。给它一些属性(例如,您可能需要权重和值)
公共类节点{
私人双倍重量;
私有字符串值;
私有数组列表边;
//二传手和接球手
}
创建一个类节点,其中包含对其他节点的引用列表(在有向图中,这一点特别有用)。边实际上不是要创建的“东西”,它更像是一个连接。实现图形的两种最常见的方法是使用邻接矩阵或邻接列表
矩阵方法涉及使用2d数组通过询问节点[i][j]
是否为真来确定节点i
和节点j
是否连接。浪费空间,但有固定的时间访问
邻接列表跟踪当前节点的每个相邻节点,这节省了空间但花费了线性时间,以便确定节点是否连接到它
这些文章对此进行了更好的解释:
创建一个具有所需所有属性的
类节点Ex.如果要为二叉树创建节点
,则节点类可以是这样的
class Node
{
Node left;
Node right;
int info;
Node(int value)
{
this.info = value;
}
//Add more attributes or functionalities
}
这是如何创建节点类
的一种表示形式。根据您的需求,表示可能会更改,但基本概念保持不变。使用所述方法和所需属性创建一个类。您需要在图形中存储多个节点。通常,您希望能够从图中删除/添加节点,因此如果您的节点类命名为node,则需要像LinkedList这样的动态数据结构。您能建议我实现吗?比如一个如何编写程序的例子?权重是否表示“它连接了多少个节点”?另外,我可以使用Scanner从输入中接受节点数吗?变量信息代表什么?当您创建节点时,您需要在其中存储一些信息,对吗?变量info
就是为了这个目的。如果我可以补充一下@pratek所说的,很多时候如果你使用的是二叉树,那么你不仅有“左节点”和“右节点”,还有一个“节点父节点”,这样遍历就可以像迭代器一样备份树。再一次,仅供参考
class Node
{
Node left;
Node right;
int info;
Node(int value)
{
this.info = value;
}
//Add more attributes or functionalities
}