我創建了一個類(如下所示)來創建一棵樹,其中節點指向他自己右邊的第一個兄弟和第一個兒子(圖形上最左邊的那個)。
如何在for回圈中正確生成和鏈接節點?
所以回圈的第一次迭代需要生成第一個子節點并將其鏈接到父節點,而隨后的每個迭代都應該生成并鏈接一個新節點作為前一個節點的兄弟
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
}
我將附上樹應該如何作業的快速繪圖: 節點包含:
淺藍色- 鏈接到第一個兒子
白色- 節點的資料
綠色- 鏈接到右側
的兄弟 紫色線顯示樹的實際形狀應該在節點的父級方面。
uj5u.com熱心網友回復:
因此,您需要一個資料結構,其中有一個父節點(firstSon 指標指向第一個“子”節點)和許多子節點,每個子節點都使用 BrotherDX 指標指向下一個節點,所以兄弟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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/420555.html
標籤:
上一篇:獲取雙指標地址
