ฉันมีขนาดใหญ่มากในทรีโหนดหน่วยความจำและจำเป็นต้องสำรวจทรี การส่งค่าที่ส่งคืนของโหนดชายด์แต่ละโหนดไปยังโหนดพาเรนต์ สิ่งนี้จะต้องทำจนกว่าโหนดทั้งหมดจะมีบับเบิลข้อมูลจนถึงรูตโหนด
การสำรวจเส้นทางทำงานเช่นนี้
private Data Execute(Node pNode)
{
Data[] values = new Data[pNode.Children.Count];
for(int i=0; i < pNode.Children.Count; i++)
{
values[i] = Execute(pNode.Children[i]); // recursive
}
return pNode.Process(values);
}
public void Start(Node pRoot)
{
Data result = Execute(pRoot);
}
ใช้งานได้ดี แต่ฉันกังวลว่า call call จะ จำกัด ขนาดของทรีโหนด
วิธีการสามารถรหัสถูกเขียนใหม่เพื่อให้ไม่มีการโทร recursive จะExecute
ทำ?