Dalla definizione di un albero (ADT), è "sbagliato" per un nodo aggiungere un fratello?

0

Il titolo dice quasi tutto. Sto solo facendo un piccolo esercizio di informatica e sto costruendo un albero. Voglio che un nodo sia in grado di aggiungere un fratello che richiede uno per prima cosa ottenere un riferimento al genitore, ovviamente. Mi chiedevo quale sia il modo "corretto", per definizione di cosa sia un Albero, per fare una cosa del genere?

    
posta Joe 26.07.2013 - 23:35
fonte

2 risposte

3

Bene, aggiungi un figlio al genitore.

Ma considera che la radice non può aggiungere un fratello. Ciò significa che l'aggiunta di fratelli non è qualcosa che un nodo in generale sa come fare. Puoi controllare se il genitore è nullo, ma (assumendo che stai facendo OO) i puristi direbbero di mettere "aggiungi fratello" da qualche parte al di fuori della tua classe di nodo. Spesso hai una classe "Tree" che racchiude un nodo radice; la classe Tree potrebbe essere un buon posto per un metodo "aggiungi fratello" statico.

    
risposta data 26.07.2013 - 23:49
fonte
0

Un sacco di alberi con cui ho lavorato in natura (alberi delle finestre nei server di visualizzazione e così via) hanno solo due indicatori: first_child e next_peer . add_child è implementato in termini di if(first_child) first_child->add_peer(child) else first_child = child; . Quindi in questo stile di implementazione c'è una funzione esplicitamente per l'aggiunta di fratelli.

    
risposta data 27.07.2013 - 00:35
fonte

Leggi altre domande sui tag