我從一個JSON出口接收到該數據:如何遍歷一個節點有多個父節點並且總結值的圖?
nodes = [
{id:1,data:29,parentOf:[]},
{id:2,data:31,parentOf:[1,8,7]},
{id:3,data:41,parentOf:[2,1]},
{id:4,data:89,parentOf:[3,2,1]},
{id:5,data:71,parentOf:[4,3,2,1,9,2,8,7]},
{id:6,data:11,parentOf:[5,4,3,2,1]},
{id:7,data:59,parentOf:[]},
{id:8,data:43,parentOf:[7]},
{id:9,data:97,parentOf:[2,8,7]}
]
這是從一個圖,其中所涉及的節點可以具有零對或多個父母的數據結構。該圖已被平放以輸出到節點陣列。 現在,我需要彙總數據的值字段。
我該如何遍歷這個圖來獲得每個節點的總數據?
編輯:用於提供必像的例子中,最終的結果如下:
[
{id:1,sum:29},
{id:2,sum:162}, // 31+102+29
{id:3,sum:203}, // 41+162
{id:4,sum:292}, // 89+203
{id:5,sum:622}, // 71+292+259
{id:6,sum:633}, // 11+622
{id:7,sum:59},
{id:8,sum:102}, // 43+59
{id:9,sum:259} // 97+162
]
編輯2:這是從數據結構的上方,由得到的曲線圖的圖由我:
我現在看到,在節點的parentOf數組中,有一些冗餘信息。
儘管提供的示例只有沒有父母的節點(id:6),但我正在尋找解決方案來處理正常情況,其中沒有父母的節點多於一個。所以我認爲圖遍歷應該從葉節點開始,即id:1和id:7。
非常感謝非遞歸方法(如果可能的話)。
所面臨的挑戰這裏是不是在和的計算,而是要解釋什麼是多餘的,哪些不是。 – trincot
爲什麼id爲'3'的節點在它的子節點(只有2的左邊分支)下有'[2,1]',並且9有正確的'[2,8,7]'? – destoryer