web-dev-qa-db-fra.com

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 par graphes?

111
user918304

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.

123
user785287

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

Un arbre en temps réel

A tree in real time

Un graphique dans la vie réelle

A real time graph

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:

enter image description here

Graphique :

enter image description here

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 :

  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

86
mk..

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/

2
Bipon Biswas

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.

1
duffymo

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.

1
user10514540

Un arbre est un digraphe tel que:

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

  1. Vous pouvez supprimer l’hypothèse qu’elle est acyclique.
  2. 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

  1. 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

0
BPL

Les autres réponses sont utiles, mais il leur manque les propriétés:

Graphique

  

Graphe non dirigé, source de l'image: Wikipedia

  

Graphe dirigé, source de l'image: Wikipedia

  • Se compose d'un ensemble de sommets (ou nœuds) et d'un ensemble d'arêtes reliant tout ou partie de ceux-ci
  • N'importe quel bord peut connecter deux sommets qui ne sont pas déjà connectés par un même bord (dans le même sens, dans le cas d'un graphe dirigé)
  • Il n'est pas nécessaire de connecter les arêtes (les arêtes ne doivent pas nécessairement relier tous les sommets): un même graphe peut être constitué de quelques ensembles de sommets déconnectés.
  • 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.

Arbre

  

Source de l'image: Wikipedia

  • Un type de graphe
  • Les sommets sont plus communément appelés "nœuds"
  • Les bords sont orientés et représentent une relation "est l'enfant de" (ou "est le parent de")
  • Chaque nœud (sauf le nœud racine) a exactement un parent (et zéro enfant ou plus)
  • A exactement un noeud "racine" (si l'arbre a au moins un noeud), qui est un noeud sans parent
  • Doit être connecté
  • Est acyclique, ce qui signifie qu’il n’a pas de cycles : "un cycle est un chemin [séquence AKA] d’arêtes et de sommets dans lequel un sommet est accessible de lui-même"

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.

0
Dukeling

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.

0
Narender sharma

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. 

0
Rajan Kumar Kharel