Profondeur en fonction de la hauteur de l'arbre. Rafraîchissant les fondamentaux

je fais une mise à jour des algorithmes et des structures de données.

je suis confus sur le concept de profondeur et hauteur d'un arbre. Dans de nombreux cas, en particulier sur les sites axés sur les entrevues, il me semble que ces termes sont utilisés de façon interchangeable.

il me semble que la littérature de base Les définit comme applicables à un noeud et à un arbre.

Donc la profondeur de la racine (qui est un nœud) est 0. La hauteur de la racine (ou de tout sous-code) est la hauteur maximale de ses enfants.

mais lorsque vous appliquez ces Termes sur un arbre, c'est-à-dire trouver la profondeur maximale d'un arbre, il semble que ces termes sont maintenant "insignifiants" et peuvent être utilisés de façon interchangeable, c'est-à-dire pour trouver la profondeur maximale calculez juste la hauteur maximale.

Par exemple dans ce post Vérifier si l'arbre est équilibré les réponses se concentrent sur la hauteur de l'arbre tandis que la définition de l'équilibre pourrait être sur la profondeur de l'arbre

Est ma compréhension correcte ou suis-je raté sur ces fondamentaux?

16
demandé sur Community 2011-12-11 19:02:19

9 réponses

Quand on parle d'un arbre, ils signifient la même chose: la longueur du plus long chemin de la racine à un nœud feuille.

9
répondu Tudor 2011-12-11 15:06:51

profondeur est habituellement utilisé pour décrire une propriété d'un noeud d'arbre, alors que le hauteur est utilisé pour décrire la propriété de l'arbre entier, comme dans les exemples suivants:

  • le noeud racine a un profondeur zéro
  • le noeud X a un profondeur de N
  • hauteur de l'arbre est M

La hauteur d'un arbre est définie comme la profondeur du plus profond de son nœud.

7
répondu dasblinkenlight 2011-12-11 15:23:18

une profondeur est "la profondeur d'un noeud" [ou sa distance par rapport à la racine]. la hauteur est "quelle hauteur de l'arbre est" [ou, quelle est la distance la plus éloignés de la feuille d'elle]

Formellement:

height(v) = 0                                                              v is a leaf
            max{height(u)|for every u such that u is a son of v} + 1       else

depth(v) = 0                                                                v root
           depth(u) + 1    where u is the parent of v                       else

EDIT: en se référant au concept de profondeur maximale, il est identique à la hauteur d'un arbre [qui est maximale à la racine], vous pouvez le prouver par induction.

4
répondu amit 2011-12-11 15:07:34

hauteur d'un noeud est la longueur de la plus longue trajectoire descendante vers une feuille à partir de ce noeud. La hauteur de la racine est hauteur de l'arbre.

profondeur d'un noeud est la longueur du chemin vers sa racine (i.e., son chemin de racine). Cela est généralement nécessaire dans la manipulation des différents arbres auto-équilibrants, arbres AVL en particulier. Le noeud de racine a la profondeur zéro, les noeuds de feuille ont la hauteur zéro, et un l'arbre avec un seul noeud (donc à la fois une racine et une feuille) a la profondeur et la hauteur zéro. Conventionnellement, un arbre vide (arbre sans noeuds, si tel est autorisé) a une profondeur et une hauteur -1.

4
répondu gsdf 2014-11-06 00:22:38

Hauteur d'un arbre est le nombre de nœuds de la racine à la feuille suivant le plus long chemin. Donc, si nous avons un nœud (racine) hauteur=1 Arbre vide: 0

et la profondeur ou le niveau de n'importe quel noeud est le nombre de bords du noeud racine à ce noeud. si..la profondeur de la racine est 0.

de cette façon, la profondeur maximale de l'arbre est inférieure à la hauteur de l'arbre.

0
répondu SunilDwivedi 2011-12-27 05:10:42
private static int getHeight(BTreeNode n){

    if(n == null)
        return 0;

    int lHeight = getHeight(n.left);
    int rheight = getHeight(n.right);

    int height = 1+Math.max(lHeight,rheight);

    return height;
}
0
répondu user3209952 2014-01-18 14:12:04

Profondeur d'un Nœud: est la longueur d'un chemin de la racine à un nœud. Hauteur D'un noeud: Longueur d'un chemin allant du noeud au noeud le plus interne(feuille).

mais la hauteur et la profondeur dans le cas de l'arbre sont les mêmes. Hauteur de l'arbre = profondeur de l'arbre = hauteur maximale = profondeur maximale.

0
répondu avishek gurung 2014-03-04 05:53:18

dans l'arbre de recherche binaire

  1. hauteur d'un noeud: # bords sur la plus longue trajectoire descendante simple du noeud à une feuille
  2. Hauteur d'un arbre: les hauteur de la racine
  3. profondeur d'un noeud: Longueur du chemin simple (#arêtes) de la racine au noeud
0
répondu Hasitha 2014-08-06 02:55:06

la hauteur du noeud est en référence à la longueur de la feuille du chemin le plus long au noeud de la feuille à partir du noeud source.

la profondeur du noeud est en référence au noeud racine. - longueur totale du noeud source à la racine

mais quand vous parlez en général de l'arbre entier les deux se réfère à même, il diffère seulement si vous prenez un noeud particulier à l'intérieur de l'arbre

0
répondu nandy 2016-11-18 21:46:18