In Graphenalgorithmen geht es oft darum, alle Nachbarn eines bestimmten Knotens zu durchlaufen. Ein NeighbourIterator ermöglicht es, von der konkreten Implementierung des Graphen zu abstrahieren, und die Nachbarknoten einen nach dem anderen zu liefern. Er leitet sich von dem Software-Entwurfsmuster Iterator ab.
Die Implementierung des Iterators NeighbourIterator berücksichtigt, dass ein Knoten möglicherweise gar keinen Nachbarknoten hat. Daher wird im Konstruktor zunächst die Methode tryNext aufgerufen. Die Methode tryNext sucht den ersten Nachbarknoten j; falls dieser nicht existiert, wird j bis zum Wert getSize() erhöht und die Methode getNext liefert gleich zu Beginn false.
Weiter mit: [up]