public Set<Vertex> getDescendants(Vertex v) {
		Set<Vertex> seeds = new HashSet<>(11);
		seeds.add(v);
		Set<Vertex> descendants = new HashSet<>(vertices.size() / 20);
		Set<Vertex> newSeeds = new HashSet<>();
		Iterator<Vertex> i;
		Vertex vertex, child;
		Edge e;

		descendants.add(v); //Every vertex is by definition it own descendant
		while (!seeds.isEmpty()) {
			newSeeds.clear();
			i = seeds.iterator();
			while (i.hasNext()) {
				vertex = i.next();
				e = vertices.getFirstOutgoingEdge(vertex);
				while (e != null) {
					child = e.to();
					if (descendants.add(child)) {
						newSeeds.add(child);
					}
					e = edges.getNextEdgeWithSameFrom(e);
				}
			}
			seeds.clear();
			seeds.addAll(newSeeds);
		}
		return descendants;
	}
Returns a Set (HashSet) containing all descendants of the given vertex.
 Note: The vertex is defined to be a descendant of itself.
Ghidra/Framework/Generic/src/main/java/ghidra/util/graph/DirectedGraph.java