public bool IsTerminal(Queue<Element> elements) { if(elements.Count == 0) { return _nodes == null; } else { Element element = elements.Dequeue(); if (!_nodes.ContainsKey(element)) { throw new System.Exception("Elements not sorted"); } return _nodes[element].IsTerminal(elements); } }