public int visitNode(int node) { int index = visitedNodes.indexOf(node); if (index >= 0) { return visitedNodes.indexGet(index); } int fromHere = 0; for (int arc = fsa.getFirstArc(node); arc != 0; arc = fsa.getNextArc(arc)) { if (fsa.isArcFinal(arc)) fromHere++; if (!fsa.isArcTerminal(arc)) { fromHere += visitNode(fsa.getEndNode(arc)); } } visitedNodes.put(node, fromHere); return fromHere; } }
public int visitNode(int node) { int index = visitedNodes.indexOf(node); if (index >= 0) { return visitedNodes.indexGet(index); } int fromHere = 0; for (int arc = fsa.getFirstArc(node); arc != 0; arc = fsa.getNextArc(arc)) { if (fsa.isArcFinal(arc)) fromHere++; if (!fsa.isArcTerminal(arc)) { fromHere += visitNode(fsa.getEndNode(arc)); } } visitedNodes.put(node, fromHere); return fromHere; } }
if (stemToRowIndex.indexExists(index)) final int rowIndex = stemToRowIndex.indexGet(index);