У меня есть набор объектов дерева с глубиной где-то в 20-х годах. Каждому узлу в этом дереве нужен доступ к корню его дерева.Делая с глобалами?
Пара решений:
- Каждый узел может хранить ссылку на корень непосредственно (отходы памяти)
- можно вычислить корень во время выполнения «идет вверх» (отходы циклов)
я могу использовать статические поля (но это составляет глобалов)
Может ли кто-нибудь предоставить конструкцию, которая не использует глобальную (в любых вариантах), но более эффективна, чем # 1 или # 2 в обеих памяти или циклах соответственно?
Редактировать: Поскольку у меня есть Набор деревьев, я не могу просто хранить его в статике, так как было бы трудно различать деревья. (thanks maccullt)
Неясно, есть ли у вас лес деревьев, в этом случае вам нужно несколько корней или если у вас есть один корень. В случае с лесом я не вижу, как статика решит вашу проблему, не нужен ли вам один корень на дерево, и каждое дерево будет ссылаться на его корень (решение 1). – maccullt 2008-09-16 00:21:11