it-swarm.com.de

Was ist der Unterschied zwischen der Datenstruktur Tree und Graph?

Was ist aus akademischer Sicht der wesentliche Unterschied zwischen der Datenstruktur Tree und Graph? Und wie wäre es mit der baumbasierten Suche und der graphbasierten Suche?

111
user918304

Ein Baum ist nur eine eingeschränkte Form eines Diagramms.

Bäume haben eine Richtung (Eltern/Kind-Beziehungen) und enthalten keine Zyklen. Sie passen in die Kategorie Directed Acyclic Graphs (oder eine DAG) . Bäume sind also DAGs mit der Einschränkung, dass ein Kind nur einen Elternteil haben kann.

Wichtig ist, dass Trees keine rekursive Datenstruktur sind. Sie können aufgrund der oben genannten Einschränkungen nicht als rekursive Datenstruktur implementiert werden. Es kann aber auch jede DAG-Implementierung verwendet werden, die im Allgemeinen nicht rekursiv ist. Meine bevorzugte Tree-Implementierung ist eine zentralisierte Kartendarstellung und ist nicht rekursiv.

Diagramme sind in der Regel zuerst der Atemzug oder zuerst die Tiefe. Gleiches gilt für Tree.

123
user785287

Anstatt zu erklären, zeige ich es lieber in Bildern.

Ein Baum in Echtzeit

A tree in real time

Eine Grafik in der Praxis

A real time graph

Ja, eine Karte kann als Diagrammdatenstruktur dargestellt werden.

Sie so zu sehen, macht das Leben leichter. Bäume werden an Orten verwendet, an denen wir wissen, dass jeder Knoten nur einen übergeordneten Knoten hat. Diagramme können jedoch mehrere Vorgänger haben (der Begriff Elternteil wird im Allgemeinen nicht für Diagramme verwendet).

In der realen Welt können Sie fast alles mit Grafiken darstellen. Ich habe zum Beispiel eine Karte verwendet. Wenn Sie jede Stadt als Knotenpunkt betrachten, kann sie von mehreren Punkten aus erreicht werden. Die Punkte, die zu diesem Knoten führen, werden Vorgänger genannt, und die Punkte, zu denen dieser Knoten führt, werden Nachfolger genannt.

ein elektrischer Schaltplan, der Plan eines Hauses, eines Computernetzwerks oder eines Flusssystems sind einige weitere Beispiele für Diagramme. Viele Beispiele aus der Praxis können als Grafiken betrachtet werden.

Technisches Diagramm könnte so sein

Baum :

enter image description here

Grafik:

enter image description here

Stellen Sie sicher, dass Sie auf die folgenden Links verweisen. Diese beantworten fast alle Ihre Fragen zu Bäumen und Grafiken.

Verweise :

  1. http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-17-bäume-und-graphen/#_Toc362296541

  2. http://www.community-of-knowledge.de/beitrag/datenbäume-as-a-mesen-von-der-gegenwärtiger-Komplex-Daten-analyse/

  3. Wikipedia

86
mk..

Tree ist eine spezielle Form eines Graphen, d. H. Ein minimal verbundener Graph und hat nur einen Pfad zwischen zwei Scheitelpunkten.

In graph kann es mehr als einen Pfad geben, d. H. Der Graph kann unidirektionale oder bidirektionale Pfade (Kanten) zwischen Knoten haben

Sie können auch weitere Details sehen: http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/

2
Bipon Biswas

Bäume sind offensichtlich: Es handelt sich um rekursive Datenstrukturen, die aus Knoten mit Kindern bestehen.

Map (aka Dictionary) sind Schlüssel/Wert-Paare. Geben Sie einer Karte einen Schlüssel, und der zugehörige Wert wird zurückgegeben.

Karten können mithilfe von Bäumen implementiert werden. Ich hoffe, Sie finden das nicht verwirrend.

UPDATE: Verwirrendes "Diagramm" für "Karte" ist sehr verwirrend.

Diagramme sind komplexer als Bäume. Bäume implizieren rekursive Eltern/Kind-Beziehungen. Es gibt natürliche Wege, um einen Baum zu durchqueren: Tiefe zuerst, Breite zuerst, Ebenenreihenfolge usw.

Graphen können unidirektionale oder bidirektionale Pfade zwischen Knoten haben, zyklisch oder azyklisch sein usw. Ich würde Graphen als komplexer betrachten.

Ich denke, eine flüchtige Suche in einem anständigen Datenstrukturtext (z. B. "Algorithms Design Manual") würde mehr und bessere Informationen liefern als eine beliebige Anzahl von SO - Antworten. Ich würde empfehlen, dass Sie nicht den passiven Weg nehmen und anfangen, selbst zu recherchieren.

1
duffymo

In der Struktur hat jeder Knoten (außer dem Wurzelknoten) genau einen Vorgängerknoten und einen oder zwei Nachfolgeknoten. Es kann mit In-Order-, Pre-Order- und Post-Order-Traversen durchlaufen werden. Baum ist eine spezielle Art von Graphen, die keinen Zyklus hat, und daher als DAG (Directed Acyclic Graph) bezeichnet wird. Baum ist ein hierarchisches Modell.

In der Grafik hat jeder Knoten einen oder mehrere Vorgängerknoten und Nachfolgeknoten. Das Diagramm wird mit den Algorithmen DTH (First Search) und BFS (Breath First Search) durchlaufen. Das Diagramm hat einen Zyklus und ist daher komplexer als der Baum. Graph ist ein Netzwerkmodell. Es gibt zwei Arten von Graphen: gerichtete Graphen und ungerichtete Graphen.

1
user10514540

Ein Baum ist ein Digraph, der

a) bei entfernten Kantenanweisungen ist es verbunden und azyklisch

  1. Sie können entweder die Annahme entfernen, dass es azyklisch ist
  2. Wenn es endlich ist, können Sie alternativ die Annahme entfernen, dass es verbunden ist

b) jeder Scheitelpunkt bis auf einen, die Wurzel, hat die Stufe 1

c) die Wurzel hat 0

  1. Wenn es nur endlich viele Knoten gibt, können Sie entweder die Annahme entfernen, dass die Wurzel indegree 0 hat, oder die Annahme, dass andere Knoten als die Wurzel haben den Grad 1

Referenz: http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf

0
BPL

Die anderen Antworten sind nützlich, aber ihnen fehlen die Eigenschaften der einzelnen:

Graph

  

Ungerichteter Graph, Bildquelle: Wikipedia

  

Gerichteter Graph, Bildquelle: Wikipedia

  • Besteht aus einer Reihe von Eckpunkten (oder Knoten) und einer Reihe von Kanten, die einige oder alle verbinden
  • Jede Kante kann zwei beliebige Scheitelpunkte verbinden, die noch nicht durch eine identische Kante verbunden sind (bei einem gerichteten Graphen in derselben Richtung).
  • Muss nicht verbunden werden (die Kanten müssen nicht alle Scheitelpunkte miteinander verbinden): Ein einzelner Graph kann aus wenigen getrennten Scheitelpunktsätzen bestehen
  • Könnte gerichtet oder ungerichtet sein (gilt für alle Kanten im Diagramm)
    Gemäß Wikipedia :

    Wenn die Eckpunkte beispielsweise Personen auf einer Party darstellen und beim Händeschütteln eine Kante zwischen zwei Personen besteht, ist dieses Diagramm ungerichtet, da jede Person A nur dann Hände mit einer Person B schütteln kann, wenn B auch Hände mit A schüttelt. Wenn im Gegensatz dazu eine Kante von einer Person A zu einer Person B A Bewunderung B entspricht, dann ist diese Grafik gerichtet, weil Bewunderung nicht unbedingt erwidert wird.

Baum

  

Bildquelle: Wikipedia

  • Eine Art Diagramm
  • Scheitelpunkte werden häufiger als "Knoten" bezeichnet
  • Kanten sind gerichtet und repräsentieren ein "Ist Kind von" (oder "Ist Eltern von") Beziehung
  • Jeder Knoten (mit Ausnahme des Stammknotens) hat genau ein übergeordnetes Element (und null oder mehr untergeordnete Elemente).
  • Hat genau einen "Wurzel" -Knoten (wenn der Baum mindestens einen Knoten hat), der ein Knoten ohne übergeordnetes Element ist
  • Muss verbunden sein
  • Ist azyklisch, dh es gibt keine Zyklen : "Ein Zyklus ist ein Pfad [AKA-Sequenz] von Kanten und Scheitelpunkten, auf dem ein Scheitelpunkt von sich aus erreichbar ist."

Es gibt einige Überlappungen bei den obigen Eigenschaften. Insbesondere werden die letzten beiden Eigenschaften von den übrigen Eigenschaften impliziert. Trotzdem sind sie alle erwähnenswert.

0
Dukeling

In der Mathematik ist ein Graph eine Darstellung eines Satzes von Objekten, bei denen einige Paare der Objekte durch Verknüpfungen verbunden sind. Die miteinander verbundenen Objekte werden durch mathematische Abstraktionen dargestellt, die als Eckpunkte bezeichnet werden, und die Verknüpfungen, die einige Eckpunktpaare verbinden, werden als Kanten bezeichnet. [1] In der Regel wird ein Diagramm in Diagrammform als Satz von Punkten für die Scheitelpunkte dargestellt, die durch Linien oder Kurven für die Kanten verbunden sind. Diagramme sind eines der Studienobjekte in der diskreten Mathematik.

0
Narender sharma

ein Wurzelknoten im Baum und nur ein Elternteil für ein Kind. Es gibt jedoch kein Konzept eines Wurzelknotens. Ein weiterer Unterschied ist, dass der Baum ein hierarchisches Modell ist, der Graph jedoch ein Netzwerkmodell. 

0