public int indexOf(String str) { return indexOf(suffixTree, new StringText(str)); }
public boolean contains(String str) { return contains(suffixTree, new StringText(str)); }
private StringSuffixTree(String text) { suffixTree = SuffixTree.create(new StringText(text)); Queue<Node> queue = new LinkedList<>(); queue.add(suffixTree.getRootNode()); while (!queue.isEmpty()) { Node node = queue.remove(); if (node.getEdges().isEmpty()) { numberOfLeaves++; } else { numberOfInnerNodes++; for (Edge edge : node.getEdges()) { numberOfEdges++; queue.add(edge.getEndNode()); } } } numberOfInnerNodes--; // without root }