Lines Matching refs:SuffixTreeNode
122 struct SuffixTreeNode { struct
129 DenseMap<unsigned, SuffixTreeNode *> Children; argument
165 SuffixTreeNode *Link = nullptr; argument
191 SuffixTreeNode(unsigned StartIdx, unsigned *EndIdx, SuffixTreeNode *Link) in SuffixTreeNode() argument
194 SuffixTreeNode() {} in SuffixTreeNode() argument
235 SpecificBumpPtrAllocator<SuffixTreeNode> NodeAllocator;
241 SuffixTreeNode *Root = nullptr;
259 SuffixTreeNode *Node;
279 SuffixTreeNode *insertLeaf(SuffixTreeNode &Parent, unsigned StartIdx, in insertLeaf()
284 SuffixTreeNode *N = new (NodeAllocator.Allocate()) in insertLeaf()
285 SuffixTreeNode(StartIdx, &LeafEndIdx, nullptr); in insertLeaf()
299 SuffixTreeNode *insertInternalNode(SuffixTreeNode *Parent, unsigned StartIdx, in insertInternalNode()
307 SuffixTreeNode *N = new (NodeAllocator.Allocate()) in insertInternalNode()
308 SuffixTreeNode(StartIdx, E, Root); in insertInternalNode()
321 void setSuffixIndices(SuffixTreeNode &CurrNode, unsigned CurrNodeLen) { in setSuffixIndices()
354 SuffixTreeNode *NeedsLink = nullptr; in extend()
383 SuffixTreeNode *NextNode = Active.Node->Children[FirstChar]; in extend()
430 SuffixTreeNode *SplitNode = in extend()
501 SuffixTreeNode *N = nullptr;
507 std::vector<SuffixTreeNode *> ToVisit;
523 std::vector<SuffixTreeNode *> LeafChildren; in advance()
527 SuffixTreeNode *Curr = ToVisit.back(); in advance()
559 for (SuffixTreeNode *Leaf : LeafChildren) in advance()
592 RepeatedSubstringIterator(SuffixTreeNode *N) : N(N) { in RepeatedSubstringIterator()