Domanda Aiuto con rappresentazione parentetica di Albero binario

gt3090

Utente Iron
6 Gennaio 2021
2
0
3
Salve a tutti! Vorrei chiedervi un aiuto per scrivere la rappresentazione parentetica di un albero binario i cui nodi contengono questi dati:
C:
struct StructAlbero {
    char nome[20];
    char cognome[20];
    char telefono[20];
      struct StructAlbero *dx, *sx;
};
Non riesco a capire come bisogna scrivere la sua rappresentazione parentetica. Quando, per esempio, sono interi li salvo in questo modo ( 12( 24()())( 36()())) ma con più campi come si fa? Verrebbe una cosa del genere? ( nome1,cognome1,tel1 ( nome2,cognome2,tel2 (nome3,cognome3,tel3) () ).
E' questo passaggio che non ho capito. Scusate probabilmente è una domanda banale ma non riesco a trovare soluzioni online perché gli esempi che trovo sono appunto con nodi contenenti un singolo intero e non campi multipli come nel mio caso (nome, cognome e telefono).
Spero di essermi spiegato bene. Grazie a chi mi risponderà :)
 

St3ve

Utente Platinum
12 Ottobre 2011
2,111
1,444
669
Verrebbe una cosa del genere? ( nome1,cognome1,tel1 ( nome2,cognome2,tel2 (nome3,cognome3,tel3) () ).
Sì, ma no. L'idea di mettere nome, cognome e numero di telefono (formattati come più ti aggrada, non obbligatoriamente separati da una virgola) al posto dell'intero è giusta, ma il tuo esempio non è un albero binario valido. Penso che sia un "errore" in buona fede perché le parentesi non sono nemmeno bilanciate.

Questo è un albero valido:
( nome1,cognome1,tel1 ( nome2,cognome2,tel2 ) (nome3,cognome3,tel3) )
questo è un altro albero valido:
( nome1,cognome1,tel1 ( ) ( nome2,cognome2,tel2 ( nome3,cognome3,tel3 ) ( ) ) )
e cambiando formattazione potresti scrivere anche una cosa di questo tipo:
( Ciccio Pasticcio, phone: 1234567890 ( Mario Rossi, phone: 0987654321 ) () )

L'importante è che le parentesi sono messe in modo corretto, rispettando la definizione formale di albero binario (i.e., il vuoto o la coppia ordinata (L,R) con L e R alberi binari).
 

gt3090

Utente Iron
6 Gennaio 2021
2
0
3
Sì, ma no. L'idea di mettere nome, cognome e numero di telefono (formattati come più ti aggrada, non obbligatoriamente separati da una virgola) al posto dell'intero è giusta, ma il tuo esempio non è un albero binario valido. Penso che sia un "errore" in buona fede perché le parentesi non sono nemmeno bilanciate.

Questo è un albero valido:
( nome1,cognome1,tel1 ( nome2,cognome2,tel2 ) (nome3,cognome3,tel3) )
questo è un altro albero valido:
( nome1,cognome1,tel1 ( ) ( nome2,cognome2,tel2 ( nome3,cognome3,tel3 ) ( ) ) )
e cambiando formattazione potresti scrivere anche una cosa di questo tipo:
( Ciccio Pasticcio, phone: 1234567890 ( Mario Rossi, phone: 0987654321 ) () )

L'importante è che le parentesi sono messe in modo corretto, rispettando la definizione formale di albero binario (i.e., il vuoto o la coppia ordinata (L,R) con L e R alberi binari).
Ti ringrazio! Si lo so l'albero l'ho scritto giusto come esempio non ho fatto caso se era valido. Grazie :)
 
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker
Supporta Inforge con una donazione