private void Traversal(INodeMinMax <T> node) { if (node == null) { return; } INodeMinMax <T> next = node.FindFirstFree() as INodeMinMax <T>; if (next != null) { _stack.Push(next); _depth++; Traversal(next); } else { next = _stack.Pop(); _depth--; next.Value = _minMaxPriority.GetPriority(_depth) == PriorityType.MIN ? next.GetMinChild() : next.GetMaxChild(); next.Debug(); next.IsVisited = true; if (_stack.Count > 0) { Traversal(_stack.Peek()); } } }
private void Traversal(INodeMinMax <T> node) { if (node == null) { return; } INodeMinMax <T> next = node.FindFirstFree() as INodeMinMax <T>; if (next != null) { _stack.Push(next); _depth++; Traversal(next); } else { next = _stack.Pop(); _depth--; next.Debug(); next.IsVisited = true; if (_stack.Count > 0) { Traversal(_stack.Peek()); } } }