Quelle est la différence entre la structure de données Tree et Graph?

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 basée sur un graphique?

Un arbre n’est qu’une forme restreinte d’un graphique.

Les arbres ont une direction (relations parent / enfant) et ne contiennent pas de cycles. Ils s’intègrent dans la catégorie des graphes acycliques dirigés (ou un DAG). Les arbres sont donc des DAG avec la ressortingction qu’un enfant ne peut avoir qu’un seul parent.

Une chose importante à souligner, les arbres ne sont pas une structure de données récursive. Ils ne peuvent pas être implémentés comme une structure de données récursive en raison des ressortingctions ci-dessus. Mais toute implémentation de DAG, qui n’est généralement pas récursive, peut également être utilisée. Mon implémentation Tree préférée est une représentation cartographique centralisée et non récursive.

Les graphiques sont généralement la recherche de la première ou de la profondeur en premier. La même chose s’applique à Tree.

Au lieu d’expliquer, je préfère le montrer en images.

Un arbre en temps réel

Un arbre en temps réel

Un graphique dans la vie réelle

Un graphique en temps réel

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 à des endroits où nous soaps 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 en utilisant des graphiques. J’ai utilisé une carte, par exemple. Si vous considérez chaque ville comme un nœud, vous pouvez y accéder depuis plusieurs points. Les points qui mènent à ce nœud sont appelés prédécesseurs et les points que ce nœud mènera s’appellent les successeurs.

Le schéma élecsortingque, le plan d’une maison, d’un réseau informatique ou d’un système fluvial ne sont que quelques exemples supplémentaires de graphiques. De nombreux exemples réels peuvent être considérés comme des graphiques.

Le schéma technique pourrait être comme ça

Arbre:

entrer la description de l'image ici

Graphique :

entrer la description de l'image ici

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.

Les références :

  1. http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-17-trees-and-graphs/#_Toc362296541

  2. http://www.community-of-knowledge.de/beitrag/data-trees-as-a-means-of-presenting-complex-data-analysis/

  3. Wikipédia

Différence entre structure de données graphique et arborescente

Des arbres

  1. L’arbre est une forme spéciale de graphe, c’est-à-dire un graphe faiblement connecté et un seul chemin entre deux sumts.

  2. Tree est un cas particulier de graphe n’ayant pas de boucles, pas de circuits et pas d’auto-boucles.

  3. Dans l’arborescence, il y a exactement un nœud racine et chaque enfant n’a qu’un seul parent.

  4. Dans les arbres, il existe une relation parent-enfant afin que le stream puisse y avoir une direction de haut en bas ou vice versa.

5.Les arbres sont moins complexes que les graphiques car ils n’ont pas de cycles, pas de boucles automatiques et sont toujours connectés.

6.La traversée des arbres est une sorte de cas particulier de traversée de graphe. L’arbre est parcouru en pré-commande, en commande et en post-commande (tous les trois en algorithme DFS ou BFS)

7.Dans les arbres, il existe de nombreuses règles / ressortingctions pour établir des connexions entre les nœuds via des arêtes.

8.Les arbres entrent dans la catégorie des DAG: les graphes acycliques dirigés sont une sorte de graphe orienté sans cycle.

9. Différents types d’arbres sont: arbre binary, arbre de recherche binary, arbre AVL, tas.

10. Applications d’arbre: sorting et recherche comme Tree Traversal & Binary Search.

11.Tree a toujours n-1 arêtes.

12.Tree est un modèle hiérarchique.

Des graphiques

  1. Dans le graphique, il peut y avoir plus d’un chemin, c.-à-d. Que le graphique peut avoir des chemins unidirectionnels ou bidirectionnels (arêtes) entre les nœuds

    1. Le graphe peut avoir des boucles, des circuits et des boucles automatiques.

3.Dans le graphique, il n’existe pas de concept de nœud racine.

4.Dans le graphique, il n’y a pas de relation parent-enfant.

5.Les graphes sont plus complexes que les arbres car ils peuvent comporter des cycles, des boucles, etc.

6. Le graphe est parcouru par DFS: première recherche de profondeur et dans BFS: algorithme de largeur de la première recherche

7.Dans les graphiques, aucune règle ou ressortingction de ce type ne permet de connecter les nœuds via des arêtes.

8. Le graphique peut être cyclique ou acyclique.

9.Heaps. Il existe principalement deux types de graphes: les graphes dirigés et les graphes non dirigés.

10. Applications graphiques: Coloration des cartes, en OR (PERT et CPM), algorithmes, coloration des graphiques, planification des tâches, etc.

  1. Dans le graphique, non. des arêtes dépendent du graphique.

12.Graph est un modèle de réseau.

Exemple d’arbre:

entrer la description de l'image ici

Graphique:

entrer la description de l'image ici

L’arbre est une forme spéciale de graphe, c’est-à-dire un graphe faiblement connecté et un seul chemin entre deux sumts.

Dans le graphique, il peut y avoir plus d’un chemin, c.-à-d. Que le graphique peut avoir des chemins unidirectionnels ou bidirectionnels (arêtes) entre les nœuds

Aussi, vous pouvez voir plus de détails: http://freefeast.info/difference-between/difference-between-trees-and-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.

Map (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.

UPDATE: Confondre “graph” pour “map” est très déroutant.

Les graphiques sont plus complexes que les arbres. Les arbres impliquent des relations parent / enfant récursives. Il existe des moyens naturels de traverser un arbre: profondeur d’abord, largeur d’abord, ordre de niveau, etc.

Les graphes peuvent avoir des trajets unidirectionnels ou bidirectionnels entre les nœuds, être cycliques ou acycliques, etc. Je considère les graphes plus complexes.

Je pense qu’une recherche rapide dans tout texte de structure de données décent (par exemple, “Algorithms Design Manual”) donnerait plus d’informations et de meilleures informations que n’importe quel nombre de réponses SO. Je vous recommande de ne pas suivre la voie passive et de commencer à faire des recherches pour vous-même.

un nœud racine dans l’arborescence 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 que le graphique est un modèle de réseau.

Un arbre est un digraphe tel que:

a) avec les directions de bord enlevées, il est connecté et acyclique

  1. Vous pouvez supprimer soit l’hypothèse qu’il est acyclique
  2. S’il est fini, vous pouvez également supprimer l’hypothèse selon laquelle il est connecté

b) tous les sumts sauf un, la racine, ont l’indége 1

c) la racine a indegree 0

  1. S’il n’y a qu’un nombre fini de nœuds, vous pouvez supprimer soit l’hypothèse que la racine a l’indegree 0, soit l’hypothèse que 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

En mathématiques, un graphique est une représentation d’un ensemble d’objects où certaines paires d’objects sont connectées par des liens. Les objects interconnectés sont représentés par des abstractions mathématiques appelées sumts, et les liens qui connectent des paires de sumts sont appelés bords. [1] Généralement, un graphique est représenté sous forme de diagramme sous la forme d’un ensemble de points pour les sumts, reliés par des lignes ou des courbes pour les arêtes. Les graphes sont l’un des objects d’étude en mathématiques discrètes.