Si recorrem un BinTree<string> com el següent
:root:
|-- left
'-- right
en inordre, obtenim la seqüència left,
:root:, right. Si concatenem aquests
strings el resultat seria:
left:root:right.
Implementa la funció tree_join, que fa aquesta operació
en un BinTree<string> qualsevol:
/**
* @brief Concatena els valors d'un arbre binari de `string`s en inordre
*
* @param t Un arbre binari de `string`s
* @returns El resultat de la concatenació
*/
string tree_join(BinTree<string> t);
Els fitxers públics (icona del gatet) contenen:
main.cc |
el programa principal, amb la entrada/sortida feta |
bintree.hh |
la classe
BinTree<T> |
bintree-io.hh |
l’entrada/sortida de
BinTree<T> |
bintree-inline.hh |
l’entrada/sortida "inline" de
BinTree<T> |
Makefile |
per compilar amb make
còmodament |
.vscode |
carpeta per compilar i debuggar amb VSCode |
Cal implementar tree_join en un fitxer
.cc nou, compilar, i finalment enviar
només el fitxer amb la funció.
L’entrada comença amb "visual" o "inline" per indicar el format dels arbres d’entrada. Després ve una seqüència d’arbres en el format indicat. (D’això s’encarrega el programa principal).
La sortida són els strings resultants de cridar la
funció tree_join, un resultat per línia. (D’això també
s’encarrega el programa principal.)
Input
visual rpe |-- ca '-- diem Laura! |-- Felicidades, '-- # # c |-- a | |-- " | '-- b '-- "
Output
carpediem Felicidades,Laura! "abc"
Input
inline ooo(fck(sog(gij,),fbc(tei,)),) sbe(ik(qri(ol,),whs(kx,)),) vvk(jp(dkv,idi),owm(,tep)) kmp(vg(ol,eem),ld(jy,al)) dn(pi(mm,ny),rp(,vf)) lgn(,qa(ut,rph)) sw(pw(ml,bf),ai(dtf,wsk)) vi(jou(jnp,dqt),nis(yxo,kr)) vc(duv(nrc,de),lgy(vid,ls)) jla(vuh(tt,bo),ujw(nvd(iqy,),))
Output
gijsogfckteifbcooo olqriikkxwhssbe dkvjpidivvkowmtep olvgeemkmpjyldal mmpinydnrpvf lgnutqarph mlpwbfswdtfaiwsk jnpjoudqtviyxoniskr nrcduvdevcvidlgyls ttvuhbojlaiqynvdujw