Questa è una semplice domanda dalla teoria degli algoritmi.
La differenza tra loro è che in un caso si conta il numero di nodi e in un altro numero di spigoli sul percorso più breve tra nodo radice e nodo concreto.
Quale è quale?
Questa è una semplice domanda dalla teoria degli algoritmi.
La differenza tra loro è che in un caso si conta il numero di nodi e in un altro numero di spigoli sul percorso più breve tra nodo radice e nodo concreto.
Quale è quale?
Risposte:
Ho imparato che la profondità e l'altezza sono proprietà di un nodo :
La profondità di un nodo è il numero di spigoli dal nodo al nodo radice dell'albero.
Un nodo radice avrà una profondità di 0.
L' altezza di un nodo è il numero di spigoli sul percorso più lungo dal nodo a una foglia.
Un nodo foglia avrà un'altezza di 0.
Proprietà di un albero :
L' altezza di un albero sarebbe l'altezza del suo nodo radice,
o equivalentemente, la profondità del suo nodo più profondo.
Il diametro (o larghezza ) di un albero è il numero di nodi sul percorso più lungo tra due nodi foglia qualsiasi. L'albero in basso ha un diametro di 6 nodi.
l'altezza e la profondità di un albero sono uguali ...
ma l'altezza e la profondità di un nodo non sono uguali perché ...
l'altezza viene calcolata attraversando dal nodo dato alla foglia più profonda possibile.
la profondità viene calcolata dall'attraversamento dalla radice al nodo dato .....
Secondo Cormen et al. Introduzione agli algoritmi (Appendice B.5.3), la profondità di un nodo X in un albero T è definita come la lunghezza del percorso semplice (numero di spigoli) dal nodo radice da T a X. L'altezza di un nodo Y è il numero di spigoli sul percorso semplice verso il basso più lungo da Y a una foglia. L'altezza di un albero è definita come l'altezza del suo nodo radice.
Si noti che un percorso semplice è un percorso senza vertici ripetuti.
L'altezza di un albero è uguale alla profondità massima di un albero . La profondità di un nodo e l'altezza di un nodo non sono necessariamente uguali. Vedere la Figura B.6 della 3a edizione di Cormen et al. per un'illustrazione di questi concetti.
A volte ho riscontrato problemi nel chiedere a uno di contare nodi (vertici) anziché bordi, quindi chiedi chiarimenti se non sei sicuro di dover contare nodi o bordi durante un esame o un colloquio di lavoro.
Risposta semplice:
Profondità:
1. Albero : il numero di spigoli / arco dal nodo radice al nodo foglia dell'albero viene chiamato Profondità dell'albero.
2. Nodo : il numero di spigoli / arco dal nodo radice a quel nodo viene chiamato Profondità di quel nodo.
Un altro modo per comprendere questi concetti è il seguente: Profondità: traccia una linea orizzontale nella posizione della radice e tratta questa linea come terra. Quindi la profondità della radice è 0 e tutti i suoi figli crescono verso il basso, quindi ogni livello di nodi ha la profondità corrente + 1.
Altezza: stessa linea orizzontale ma questa volta la posizione del suolo è nodi esterni, che è la foglia dell'albero e conta verso l'alto.
Volevo pubblicare questo post perché sono uno studente universitario CS e sempre più usiamo OpenDSA e altri libri di testo open source. Sembra dalla risposta più votata che il modo in cui viene insegnata l'altezza e la profondità è cambiato da una generazione all'altra, e lo sto postando in modo che tutti siano consapevoli che questa discrepanza ora esiste e speriamo che non causi bug in alcun programmi! Grazie.
Dal libro OpenDSA Data Structures & Algos :
Se n 1 , n 2 , ..., n k è una sequenza di nodi nella struttura tale che n i è il genitore di n i +1 per 1 <= i <k, allora questa sequenza è chiamata un percorso da n Da 1 a nk . La lunghezza del percorso è k − 1. Se esiste un percorso dal nodo R al nodo M, allora R è un antenato di M e M è un discendente di R. Pertanto, tutti i nodi dell'albero sono discendenti della radice dell'albero, mentre la radice è l'antenato di tutti i nodi. La profondità di un nodo M nell'albero è la lunghezza del percorso dalla radice dell'albero a M. L'altezza di un albero è uno in più rispetto alla profondità del nodo più profondo dell'albero.Tutti i nodi di profondità d sono al livello d nell'albero. La radice è l'unico nodo al livello 0 e la sua profondità è 0.
Figura 7.2.1: Un albero binario. Il nodo A è la radice. I nodi B e C sono i figli di A. I nodi B e D formano insieme una sottostruttura. Il nodo B ha due figli: il figlio sinistro è l'albero vuoto e il figlio destro è D. I nodi A, C ed E sono antenati di G. I nodi D, E ed F costituiscono il livello 2 dell'albero; il nodo A è al livello 0. I bordi da A a C a E a G formano un percorso di lunghezza 3. I nodi D, G, H e I sono foglie. I nodi A, B, C, E e F sono nodi interni. La profondità di I è 3. L'altezza di questo albero è 4.