Direm que un BinTree<char>
T
representa una paraula word
, formada pels caràcters c1c2… cn, amb n≥ 0, si hi ha un camí a l’arbre començant des de l’arrel i de longitud n tal que els valors dels nodes del camí formen word
. Implementeu eficientment la funció count_word_in_paths
, especificada a continuació:
/** * @pre `word` té almenys una lletra * @post es retorna el nombre de camins que representen * la paraula word des de l'arrel */ int count_word_in_paths(const vector<char>& word, const BinTree<char>& T);
Per exemple, per a la paraula "dia"
si l’arbre és t1
, el resultat és 0, si l’arbre és t2
el resultat és 3 i si l’arbre és t3
el resultat és 1.
t1 = d t2 = d t3 = d / \ / \ / \ d d i i i i / \ / / \ / \ w i a a a a b / \ / k a r
Observació
Només cal que envieu el codi de la funció en un fitxer .cc
, a la icona del gatet teniu un .tar
per poder compilar i provar la vostra solució.
count_word_in_paths("a", "a(b,)") → 1 count_word_in_paths("ab", "a(b,)") → 1 count_word_in_paths("abc", "a(b,)") → 0 count_word_in_paths("abc", "a(b(c,x),b(y,c))") → 2 count_word_in_paths("abc", "a(b,c(d,))") → 0