Voglio sapere se l'albero binario T2 è una sottostruttura di albero binario T1. Ho letto che si potevano costruire rappresentazioni di stringhe per T2 e T1 usando gli attraversamenti in preordine e in ordine e se le stringhe T2 sono sottostringhe delle stringhe T1, T2 è un sottoalbero di T1.Determinare se un albero binario è sottostruttura di un altro albero binario utilizzando le stringhe pre-ordine e in ordine
Sono un po 'confuso da questo metodo e non sono sicuro della sua correttezza.
Da wiki: "Un sottoalbero di un albero T è un albero costituito da un nodo in T e tutti i suoi discendenti in T."
Nel seguente esempio:
T2:
1
/\
2 3
T1:
1
/\
2 3
\
4
Se costruiamo le stringhe per T2 e T1:
preordine T2: "1,2,3"
preordine T1: "1,2, 3,4"
simmetrico T2: "2,1,3"
simmetrico T1: "2,1,3,4"
le corde T2 sono sottostringhe di T1, in modo da utilizzare il metodo sottostringa corrispondente d descritto sopra, dovremmo concludere che T2 è un sottoalbero di T1.
Tuttavia, T2 per definizione non deve essere una sottostruttura di T1 poiché non ha tutti i discendenti del nodo radice di T1.
C'è una discussione correlata here, che sembra concludere che il metodo sia corretto.
Mi manca qualcosa qui?
non è possibile riutilizzare' C' così, non è così che le opere di teoria . –
Non sono sicuro di quale teoria ti riferisci. Ho appena notato che il libro non menziona gli alberi che non hanno valori duplicati (il libro è molto esplicito nella designazione quando si riferisce agli alberi di ricerca binari rispetto agli alberi binari generali .. questo caso non era un albero binario di ricerca). –
"si potrebbero costruire rappresentazioni di stringhe per T2 e T1 usando gli attraversamenti in preordine e in ordine e se le stringhe T2 sono sottostringhe delle stringhe T1, T2 è un sottoalbero di T1." Questa teoria potrebbe essere corretta solo se ogni nodo ha un carattere unico. Se hai bisogno di più caratteri, avrai anche bisogno di un metodo per essere espliciti su dove è l'inizio del nome di un nodo, come i nomi dei nodi iniziano con lettere maiuscole e tutti gli altri caratteri sono in minuscolo. –