From 777e526acf3ab20bdd5130cbe80bdc4a84997361 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 28 May 2020 12:51:29 +0200 Subject: [PATCH] fixes and simplifications in exact subtree match --- alib2algo/src/arbology/exact/ExactSubtreeMatch.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/alib2algo/src/arbology/exact/ExactSubtreeMatch.h b/alib2algo/src/arbology/exact/ExactSubtreeMatch.h index c754d7545b..e218bee72d 100644 --- a/alib2algo/src/arbology/exact/ExactSubtreeMatch.h +++ b/alib2algo/src/arbology/exact/ExactSubtreeMatch.h @@ -45,8 +45,6 @@ private: template < class SymbolType > static void matchInternal(unsigned& index, ext::set<unsigned>& occ, const ext::tree < SymbolType > & subject, const ext::tree < SymbolType > & pattern); - template < class SymbolType > - static void matchInternal(unsigned& index, ext::set<unsigned>& occ, const ext::tree < common::ranked_symbol < SymbolType > > & subject, const ext::tree < common::ranked_symbol < SymbolType > > & pattern); }; @@ -57,7 +55,7 @@ bool ExactSubtreeMatch::matchHelper ( const ext::tree < SymbolType > & subject, auto patternIter = pattern.getChildren ( ).begin ( ); auto subjectIter = subject.getChildren ( ).begin ( ); - while ( patternIter != pattern.getChildren ( ).end ( ) || subjectIter != subject.getChildren ( ).end ( ) ) { + while ( patternIter != pattern.getChildren ( ).end ( ) && subjectIter != subject.getChildren ( ).end ( ) ) { if ( matchHelper ( * subjectIter, * patternIter ) ) ++ patternIter; @@ -88,16 +86,6 @@ void ExactSubtreeMatch::matchInternal ( unsigned & index, ext::set < unsigned > matchInternal ( index, occ, child, pattern ); } -template < class SymbolType > -void ExactSubtreeMatch::matchInternal ( unsigned & index, ext::set < unsigned > & occ, const ext::tree < common::ranked_symbol < SymbolType > > & subject, const ext::tree < common::ranked_symbol < SymbolType > > & pattern ) { - if ( matchHelper ( subject, pattern ) ) occ.insert ( index ); - - index++; - - for ( const ext::tree < common::ranked_symbol < SymbolType > > & child : subject.getChildren ( ) ) - matchInternal ( index, occ, child, pattern ); -} - template < class SymbolType > ext::set < unsigned > ExactSubtreeMatch::match ( const tree::UnrankedTree < SymbolType > & subject, const tree::UnrankedTree < SymbolType > & pattern ) { unsigned i = 0; -- GitLab