Sur le plan académique, quelle est la différence essentielle entre la structure de données Tree et Graph? Et que dire de la recherche par arborescence et de la recherche par graphes?
Un arbre est juste une forme restreinte d'un graphique.
Les arbres ont une direction (relations parent/enfant) et ne contiennent pas de cycles. Ils entrent dans la catégorie des graphes acycliques dirigés (ou un DAG) . Ainsi, les arbres sont des DAG avec la restriction qu'un enfant ne peut avoir qu'un seul parent.
Une chose qu'il est important de souligner, les arbres ne sont pas une structure de données récursive. Ils ne peuvent pas être implémentés en tant que structure de données récursive en raison des restrictions ci-dessus. Mais toute implémentation de DAG, qui n'est généralement pas récursive, peut également être utilisée ..___ Ma mise en œuvre d'arborescence préférée est une représentation cartographique centralisée et non récursive.
Les graphiques sont généralement le souffle de recherche en premier ou la profondeur en premier. La même chose s'applique à l'arbre.
Au lieu d’expliquer, je préfère le montrer en images.
Un arbre en temps réel
Un graphique dans la vie réelle
Oui, une carte peut être visualisée sous forme de structure de données graphique.
Les voir ainsi rend la vie plus facile. Les arbres sont utilisés aux endroits où nous savons que chaque nœud n'a qu'un seul parent. Mais les graphiques peuvent avoir plusieurs prédécesseurs (le terme parent n'est généralement pas utilisé pour les graphiques).
Dans le monde réel, vous pouvez représenter presque n'importe quoi à l'aide de graphiques. J'ai utilisé une carte, par exemple. Si vous considérez chaque ville comme un nœud, vous pouvez y accéder à partir de plusieurs points. Les points qui mènent à ce nœud sont appelés prédécesseurs et les points auxquels ce nœud mènera sont appelés successeurs.
schéma de circuit électrique, le plan d’une maison, d’un réseau informatique ou d’un système fluvial sont quelques exemples supplémentaires de graphiques. De nombreux exemples du monde réel peuvent être considérés comme des graphiques.
Schéma technique pourrait être comme ça
Arbre:
Graphique :
Assurez-vous de vous référer aux liens ci-dessous. Ceux-ci répondront à presque toutes vos questions sur les arbres et les graphiques.
Références :
Tree est une forme spéciale de graphe, c’est-à-dire un graphe peu connecté et n’ayant qu’un seul chemin entre deux sommets quelconques.
Dans le graphique, il peut y avoir plus d'un chemin, c'est-à-dire que le graphique peut avoir des chemins unidirectionnels ou bidirectionnels (bords) entre les nœuds.
Vous pouvez également voir plus de détails: http://freefeast.info/difference-between/difference-between-trees-et-graphs-trees-vs-graphs/
Les arbres sont évidents: ce sont des structures de données récursives composées de nœuds avec des enfants.
Carte (aka dictionnaire) sont des paires clé/valeur. Donnez une clé à une carte et elle retournera la valeur associée.
Les cartes peuvent être implémentées en utilisant des arbres, j'espère que vous ne trouvez pas cela déroutant.
MISE À JOUR: "graphique" déroutant pour "carte" est très déroutant.
Les graphiques sont plus complexes que les arbres. Les arbres impliquent des relations récursives parent/enfant. Il y a des façons naturelles de traverser un arbre: profondeur d'abord, largeur d'abord, ordre de niveau, etc.
Les graphes peuvent avoir des chemins unidirectionnels ou bidirectionnels entre les nœuds, être cycliques ou acycliques, etc. Je considère que les graphes sont plus complexes.
Je pense qu'une recherche superficielle dans tout texte de structure de données décent (par exemple, "Manuel de conception d'algorithmes") donnerait davantage d'informations et de meilleures informations que n'importe quel nombre de réponses SO. Je vous recommande de ne pas prendre la voie passive et de commencer à faire des recherches par vous-même.
Dans l'arborescence, chaque nœud (à l'exception du nœud racine) a exactement un nœud prédécesseur et un ou deux nœuds successeurs. Il peut être parcouru en utilisant des traversées dans l'ordre, dans l'ordre et après l'ordre. L'arbre est un type spécial de graphique qui n'a pas de cycle, c'est ce qu'on appelle DAG (Directed Acyclic Graph). Tree est un modèle hiérarchique.
Dans le graphique, chaque nœud a un ou plusieurs nœuds prédécesseurs et successeurs. Le graphique est parcouru à l’aide des algorithmes DFS (Depth First Search) et Breath First Search (BSP). Le graphique a un cycle, il est donc plus complexe que l'arbre. Graph est un modèle de réseau. Il existe deux types de graphes: les graphes dirigés et les graphes non dirigés.
Un arbre est un digraphe tel que:
a) avec les directions de bord supprimées, il est connecté et acyclique
- Vous pouvez supprimer l’hypothèse qu’elle est acyclique.
- Si elle est finie, vous pouvez également supprimer l’hypothèse selon laquelle elle est connectée.
b) chaque sommet sauf un, la racine, a un octet 1
c) la racine a 0
- S'il n'y a qu'un nombre fini de nœuds, vous pouvez supprimer l'hypothèse selon laquelle la racine a la valeur 0 ou l'hypothèse que le les nœuds autres que la racine ont le degré 1
Référence: http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf
Les autres réponses sont utiles, mais il leur manque les propriétés:
Graphe non dirigé, source de l'image: Wikipedia
Graphe dirigé, source de l'image: Wikipedia
Pourrait être dirigé ou non dirigé (ce qui s'appliquerait à toutes les arêtes du graphique)
Selon Wikipedia :
Par exemple, si les sommets représentent des personnes dans une fête et qu'il y a un bord entre deux personnes si elles se serrent la main, alors ce graphique n'est pas dirigé car toute personne A ne peut serrer la main d'une personne B que si B serre également une main de A. En revanche, si un bord d'une personne A à une personne B correspond à A admirant B, alors ce graphe est dirigé, car l'admiration n'est pas nécessairement réciproque.
Il y a un certain chevauchement dans les propriétés ci-dessus. Plus précisément, les deux dernières propriétés sont impliquées par le reste des propriétés. Mais tous méritent néanmoins d'être notés.
En mathématiques, un graphe est une représentation d'un ensemble d'objets où certaines paires d'objets sont reliées par des liens. Les objets interconnectés sont représentés par des abstractions mathématiques appelées sommets, et les liens qui connectent certaines paires de sommets sont appelés des arêtes. [1] Typiquement, un graphique est représenté sous forme de diagramme sous forme d'un ensemble de points pour les sommets, reliés par des lignes ou des courbes pour les arêtes. Les graphiques sont l'un des objets d'étude en mathématiques discrètes.
un nœud racine dans l’arbre et un seul parent pour un enfant. Cependant, il n'y a pas de concept de nœud racine. Une autre différence est que l’arbre est un modèle hiérarchique, mais le graphique est un modèle de réseau.