Nitlanguage.org
  • Nitdoc
  • graph
  • digraph
  • ArcsIterator
  • defaultinit

init defaultinit(graph: Digraph[V])

graph :: ArcsIterator :: defaultinit

  • Doc
  • Linearization

Summary

  • Property definitions

  • graph$ArcsIterator$defaultinit

Property definitions

graph $ ArcsIterator :: defaultinit
# Arcs iterator
class ArcsIterator[V: Object]
	super Iterator[Array[V]]

	# The graph whose arcs are iterated over
	var graph: Digraph[V]
	# Attributes
	#
	private var sources_iterator: Iterator[V] is noinit
	private var targets_iterator: Iterator[V] is noinit
	init
	do
		sources_iterator = graph.vertices_iterator
		if sources_iterator.is_ok then
			targets_iterator = graph.successors(sources_iterator.item).iterator
			if not targets_iterator.is_ok then update_iterators
		end
	end

	redef fun is_ok do return sources_iterator.is_ok and targets_iterator.is_ok

	redef fun item do return [sources_iterator.item, targets_iterator.item]

	redef fun next
	do
		targets_iterator.next
		update_iterators
	end

	private fun update_iterators
	do
		while not targets_iterator.is_ok and sources_iterator.is_ok
		do
			sources_iterator.next
			if sources_iterator.is_ok then
				targets_iterator = graph.successors(sources_iterator.item).iterator
			end
		end
	end
end
lib/graph/digraph.nit:671,1--710,3
Nit tools. Version .