C'est une simple question de la théorie des algorithmes.
La différence entre eux est que dans un cas, vous comptez le nombre de nœuds et dans un autre nombre d'arêtes sur le chemin le plus court entre la racine et le nœud concret.
Lequel est lequel?
J'ai appris que la profondeur et la hauteur sont les propriétés d'un noeud :
La profondeur d'un nœud est le nombre d'arêtes allant du nœud au nœud racine de l'arbre.
Un nœud racine aura une profondeur de 0.
Le hauteur d'un nœud est le nombre d'arêtes sur le chemin le plus long du nœud à une feuille.
Un nœud de feuille aura une hauteur de 0.
Propriétés d'un arbre :
Le hauteur d'un arbre serait la hauteur de son nœud racine,
ou de manière équivalente, la profondeur de son nœud le plus profond.
Le diamètre (ou largeur) d'un arbre est le nombre de nœuds sur le chemin le plus long. entre deux nœuds feuilles quelconques. L'arbre ci-dessous a un diamètre de 6 nœuds.
la hauteur et la profondeur d'un arbre sont égales ...
mais la hauteur et la profondeur d'un nœud n'est pas égale car ...
la hauteur est calculée en allant du nœud donné à la feuille la plus profonde possible.
la profondeur est calculée à partir de la traversée de la racine au noeud donné .....
Selon Cormen et al. Introduction aux algorithmes (Appendice B.5.3), la profondeur d'un nœud X dans un arbre T est définie comme la longueur du chemin simple (nombre d'arêtes) du nœud racine de T à X. La hauteur d'un nœud Y est le nombre d'arêtes sur le le plus long chemin simple allant de Y à une feuille. La hauteur d'un arbre est définie comme la hauteur de son nœud racine.
Notez qu'un chemin simple est un chemin sans sommets répétés.
La hauteur d'un arbre est égale à la profondeur maximale d'un arbre . La profondeur d'un nœud et la hauteur d'un nœud ne sont pas nécessairement égales. Voir la figure B.6 de la 3e édition de Cormen et al. pour une illustration de ces concepts.
J'ai parfois rencontré des problèmes vous demandant de compter les nœuds (sommets) au lieu des arêtes, alors demandez des éclaircissements si vous n'êtes pas sûr de devoir compter des nœuds ou des arêtes lors d'un examen ou d'un entretien d'embauche.
Réponse simple:
Profondeur:
1. Arbre: Nombre d'arêtes/arc du noeud racine au noeud feuille de l'arbre s'appelle la profondeur de l'arbre.
2. Node: Nombre d'arêtes/arc du nœud racine à ce nœud est appelé la profondeur de ce nœud.
Je voulais faire ce post parce que je suis un étudiant de premier cycle en CS et que nous utilisons de plus en plus OpenDSA et d’autres manuels open source. La réponse la mieux notée semble indiquer que la façon dont la hauteur et la profondeur sont enseignées a changé d’une génération à l’autre. programmes! Merci.
Du livre OpenDSA Data Structures & Algos :
Si n1, n2, ..., nk est une séquence de nœuds dans l’arbre tels que nje est le parent de nje+1 pour 1 <= i <k, cette séquence est appelée chemin de n1 tonnek. La longueur du chemin est k-1. S'il existe un chemin du noeud R au noeud M, alors R est un ancêtre de M et M est un descendant de R. Ainsi, tous les noeuds de l'arbre sont des descendants de la racine de l'arbre, tandis que la racine est l'ancêtre. de tous les nœuds. La profondeur d'un nœud M dans l'arbre est la longueur du chemin allant de la racine de l'arbre à M. La hauteur d'un arbre est supérieure de un à la profondeur du nœud le plus profond dans le arbre. Tous les nœuds de profondeur d sont au niveau d de l’arbre. La racine est le seul noeud au niveau 0 et sa profondeur est 0.
Figure 7.2.1: Un arbre binaire. Node A est la racine. Les nœuds B et C sont les enfants de A. Les nœuds B et D forment ensemble un sous-arbre. Node B a deux enfants: son enfant gauche est l'arbre vide et son enfant droit est D. Les nœuds A, C et E sont les ancêtres de G. Les nœuds D, E et F constituent le niveau 2 de l'arbre; le noeud A est au niveau 0. Les arêtes de A à C à E à G forment un chemin de longueur 3. Les noeuds D, G, H et I sont des feuilles. Les nœuds A, B, C, E et F sont des nœuds internes. La profondeur de I est 3. La hauteur de cet arbre est 4.
Une autre façon de comprendre ce concept est la suivante: Profondeur: tracez une ligne horizontale à la position de la racine et traitez cette ligne comme un terrain. La profondeur de la racine est donc 0 et tous ses enfants grandissent vers le bas de sorte que chaque niveau de nœud ait la profondeur actuelle + 1.
Hauteur: Même ligne horizontale mais cette fois la position du sol sont des nœuds externes, qui sont la feuille de l'arbre et qui comptent vers le haut.