如何在Java中使用指向下一个兄弟的节点来创建树



我创建了一个类(如下所示(来创建一个树,其中节点指向他右边的第一个兄弟和第一个儿子(图形上是最左边的那个(
如何在循环中正确生成和链接节点

因此,循环的第一次迭代需要生成第一个子节点并将其链接到父节点,而接下来的每一次迭代都应该生成并链接一个新节点,作为前一个的兄弟

final class Node { 
private Node firstSon = null;
private int data;
private Node brotherDX = null;
public Nodo(Nodo firstSon, int data, Nodo brotherDX) {
this.data = data;
this.brotherDX = brotherDX;
this.firstSon = firstSon;
}
}
public class MyClass {
private Node rootNode = new Node(null, 0, null)

//for cicle goes here
}

我将附上一张树应该如何工作的快速图纸:节点包含:
浅蓝色-第一个儿子的链接
白色–节点的数据
<1em>绿色-右侧兄弟的链接
紫色线显示了在节点养育方面树的实际形状。

因此,您想要一个数据结构,其中有一个父节点(firstSon指针指向第一个"子"节点(和许多子节点,每个子节点都使用妹夫DX指针指向下一个,因此妹夫DX或firstSon未使用?两个指针都有一个指针(顺便说一句,这将是一个单独的链表(,这不是容易得多吗?

无论哪种方式,以您希望的方式添加节点的逻辑都相当简单:

Node start = new Node(null, 0, null);
Node temp = new Node(null, 1, null);
start.firstSon = temp;
for(int i=2;i<=AMOUNT_OF_NODES;i++){
temp.brotherDX = new Node(null, i, null);
temp = temp.brotherDX;
}

最新更新