Я хочу иметь итератор для структуры данных.
Пока я не знаю, что такое структура данных, возможно, это DAG (направленный ациклический граф), но, возможно, это может быть также связанный список.
Поэтому я хочу обернуть его в итератор и не думать сейчас о конкретной структуре данных.
Я знаю, как посетить DAG с рекурсивным посетителем,
но я не могу понять простую и понятную структуру для реализации методов итераторов next()
и hasNext()
.
Внутри итератора я создал текущий экземпляр узла и перебрал цикл for для всех потомков, а затем вернулся к родителю. Требуется уже посещенный флаг.
Так что у моего DagElement
есть следующие атрибуты:
DagElement parent
boolean alreadyVisited
Я не думаю, что это чистое решение.
Любой совет?