Open in App
Login Anmelden

Select your language

Suggested languages for you:
StudySmarter - Die all-in-one Lernapp.
4.8 • +11k Ratings
Mehr als 5 Millionen Downloads
Free
|
|
Graphen

Betrachte den faszinierenden Bereich der Graphen in der Informatik. Sie sind eine Schlüsselkomponente in der Strukturanalyse von Daten und liefern wichtige Erkenntnisse zur Optimierung. Verstehe, was sie ausmacht und wie verschiedene Arten, wie gerichtete, ungerichtete und gewichtete Graphen, in der Informatik verwendet werden. Vertiefe deine Kenntnisse über die Bedeutung von…

Inhalt von Fachexperten überprüft
Kostenlose StudySmarter App mit über 20 Millionen Studierenden
Mockup Schule

Entdecke über 50 Millionen kostenlose Lernmaterialien in unserer App.

Illustration

Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken

Jetzt kostenlos anmelden

Nie wieder prokastinieren mit unseren Lernerinnerungen.

Jetzt kostenlos anmelden
Illustration

Betrachte den faszinierenden Bereich der Graphen in der Informatik. Sie sind eine Schlüsselkomponente in der Strukturanalyse von Daten und liefern wichtige Erkenntnisse zur Optimierung. Verstehe, was sie ausmacht und wie verschiedene Arten, wie gerichtete, ungerichtete und gewichtete Graphen, in der Informatik verwendet werden. Vertiefe deine Kenntnisse über die Bedeutung von zusammenhängenden Graphen und wie man sie in Java programmiert. Egal ob Neuling oder Profi, im Laufe dieses Artikels erhältst du einen praxisbezogenen und tiefgreifenden Einblick in die Welt der Graphen.

Was sind Graphen in der Informatik?

In der Welt der Informatik sind Graphen ein fundamentales Konzept, das zur Modellierung von Beziehungen zwischen unterschiedlichen Elementen verwendet wird. Ein Graph kann als abstrakter Datentyp definiert werden, der aus Knoten (auch als Vertex oder Nodes bezeichnet) und Kanten (edges) besteht, welche die Beziehungen zwischen den Knoten darstellen.

Ein Graph \( G = (V, E) \) besteht aus einer Menge von Knoten \( V \) und einer Menge von Kanten \( E \).

Zum Beispiel, ein social Media Netzwerk kann als Graph modelliert werden, in dem die Benutzer die Knoten und die Freundschaften zwischen ihnen die Kanten repräsentieren.

Merkmale und Arten von Graphen in der Informatik

Nicht alle Graphen in der Informatik sind gleich. Je nach Merkmal oder Anwendung können sie auf verschiedene Arten kategorisiert werden.

Unterschied zwischen gerichtetem und ungerichtetem Graphen

Eine primäre Unterscheidung zwischen Graphen ist, ob sie gerichtet oder ungerichtet sind. In einem gerichteten Graphen hat jede Kante eine Richtung, von einem Knoten zu einem anderen. Auf der anderen Seite haben die Kanten in einem ungerichteten Graphen keine bestimmte Richtung.

Ein gerichteter Graph \( D = (V, E) \) besteht aus Knoten \( V \) und geordneten Paaren \( E \). Ein ungerichteter Graph \( U = (V, E) \) besteht aus Knoten \( V \) und ungeordneten Paaren \( E \).

Ein Beispiel für einen gerichteten Graphen könnte ein Straßennetzwerk sein, in dem die Einbahnstraßen die gerichteten Kanten wären, die von einem Punkt zum anderen führen.

Was ist ein gewichteter Graph?

Ein weiteres Merkmal, das Graphen unterscheiden kann, ist, ob sie gewichtet sind oder nicht. Ein gewichteter Graph hat Werte (auch als Gewichte bezeichnet) auf seinen Kanten, die Kosten, Längen, Kapazitäten oder andere Attribute darstellen können, abhängig vom Kontext.

Ein gewichteter Graph \( W = (V, E, w) \) hat eine Funktion \( w : E \rightarrow R \), die jeder Kante ein Gewicht zuordnet.

Ein Beispiel für einen gewichteten Graphen könnte ein Netzwerk von Straßen sein, in dem die Gewichte die Entfernungen zwischen den Städten repräsentieren könnten.

Anwendungsbereiche: Graphen Verwendung in der Informatik

Graphen sind ein mächtiges Werkzeug in der Informatik und werden in einer Vielzahl von Anwendungen und Algorithmen verwendet. Einige der häufigsten Anwendungen für Graphen sind Netzwerkanalyse, Soziale Netzwerkanalyse, Routenplanung und viele mehr.

Weitere Anwendungsbereiche können die Modellierung von Datenbanken, künstlichen neuronalen Netzwerken oder dem World Wide Web sein.

Zusammenhänge in Graphen

Der Zusammenhang ist ein wichtiges Konzept in Graphen. Einfach ausgedrückt, bedeutet es, dass man von jedem Knoten des Graphen zu jedem anderen Knoten gelangen kann, indem man den Kanten folgt.

Bedeutung von zusammenhängenden Graphen

Zusammenhängende Graphen spielen eine wichtige Rolle in vielen realen Situationen. Sie sind insbesondere hilfreich, um in einem Netzwerk Pfade zu finden oder den kürzesten Weg von einem Punkt zum anderen zu ermitteln.

Ein Graph ist zusammenhängend, wenn es zwischen jedem Paar von Knoten einen Pfad gibt. In einem gerichteten Graphen, sprechen wir von starkem Zusammenhang, wenn diese Pfade in beiden Richtungen existieren.

Ein Beispiel für einen zusammenhängenden Graphen wäre ein Flugnetzwerk, in dem man jede Stadt von jeder anderen Stadt aus erreichen kann, indem man eine oder mehrere Flugverbindungen nimmt.

Graphen programmieren: Umsetzung in Java

Die Programmiersprache Java bietet mehrere Methoden zur Implementierung und Manipulation von Graphen. Hier werden wir einige der grundlegenden Konzepte und Techniken untersuchen, die beim Arbeiten mit Graphen in Java nützlich sind.

Einführung in Java Graphen: Grundlegende Konzepte

In Java kann ein Graph durch eine Menge von Knoten und eine Menge von Kanten repräsentiert werden. Eine gängige Methode zur Darstellung eines Graphen in Java ist die Verwendung einer Adjazenzmatrix oder einer Adjazenzliste. Für einen Graphen mit \(n\) Knoten ist die Adjazenzmatrix eine \(n x n\) Matrix, in der der Wert in der Zelle \((i, j)\) angibt, ob eine Kante zwischen den Knoten \(i\) und \(j\) besteht.

  • Eine Adjazenzmatrix ist eine 2D-Array von Größe \(N x N\), wobei \(N\) die Anzahl der Knoten ist. Jedes Element \(Adj[i][j]\) ist \(1\), wenn eine Kante vom \(i\)ten zum \(j\)ten Knoten existiert, sonst \(0\).
  • Eine Adjazenzliste ist eine Liste von Listen, wobei jede innere Liste die benachbarten Knoten des \(i\)ten Knotens darstellt.

Zu jedem Knoten in einer Adjazenzliste, wird eine Liste der Knoten, die an diesen Knoten angrenzen, gehängt. Dies bedeutet, dass für einen Graphen mit \( n \) Knoten, die Liste \( n \) Listenelemente hat.

Vergleichen wir die beiden Methoden:

KriterienAdjazenzmatrixAdjazenzliste
Speicherplatz \( O(n^{2}) \)Sie braucht weniger Speicherplatz, \( O(n+2e) \)
KantenerkennungEs ist \( O(1) \) \( O(n) \)
AnwendungBevorzugt, wenn der Graph dicht istBevorzugt, wenn der Graph spärlich ist

Praxisbeispiel: Graphen Implementierung in Java

Jetzt, wo du die Grundlagen der Graphentheorie und wie man sie in Java repräsentiert kennst, lassen uns diese Konzepte in einem Praxisbeispiel anwenden.

Eine übliche Art, Graphen zu implementieren, ist durch die Erstellung einer benutzerdefinierten Klasse namens "Graph", die die Anzahl der Knoten und die Art des Graphen (gerichtet, ungerichtet, gewichtet, usw.) speichern kann.

public class Graph {
    private int num_of_vertices;
    private LinkedList adjListArray[];
 
    // constructor 
    Graph(int num_of_vertices) {
        this.num_of_vertices = num_of_vertices;
        // define the size of Array as 
        // number of vertices
        adjListArray = new LinkedList[num_of_vertices];
 
        // Create a new list for each vertex
        // such that adjacent nodes can be stored
        for(int i = 0; i < num_of_vertices ; i++){
            adjListArray[i] = new LinkedList<>();
        }
    }
 
   ...
}

Arbeit mit ungerichteten Graphen in Java

Wenn du mit einem ungerichteten Graphen in Java arbeitest, bedeutet das, dass eine Kante zwischen zwei Knoten keine spezielle Richtung hat. Du kannst eine Kante hinzufügen, indem du beiden Knoten den anderen Knoten hinzufügst.

void addEdge(int src, int dest) {
    // Add an edge from src to dest. 
    adjListArray[src].add(dest);
 
    // Since graph is undirected, add an edge from dest
    // to src also
    adjListArray[dest].add(src);
}

Mit dieser Methode kannst du jetzt jedes Mal, wenn du eine Kante in deinem Graphen hinzufügen möchtest, die Methode "addEdge" aufrufen. Beachte, dass diese Methode nur für ungerichtete Graphen geeignet ist. Wenn du einen gerichteten Graphen hast, würde die Kante nur in eine Richtung gehen.

Angenommen, du möchtest einen ungerichteten Graphen mit fünf Knoten erstellen und Kanten zwischen den Knoten 0 und 1, den Knoten 0 und 4, den Knoten 1 und 2, den Knoten 1 und 3 und den Knoten 1 und 4 hinzufügen. Die Implementierung in Java könnte wie folgt aussehen:

public static void main(String[] args) {
    Graph graph = new Graph(5);
    graph.addEdge(0, 1);
    graph.addEdge(0, 4);
    graph.addEdge(1, 2);
    graph.addEdge(1, 3);
    graph.addEdge(1, 4);
}

Spezifika und Unterschiede von Graphentypen

Eine der Schlüsselunterschiede zwischen den verschiedenen Arten von Graphen in der Informatik ist die Richtung ihrer Kanten. Über diese Eigenschaft unterscheiden wir zwischen gerichteten und ungerichteten Graphen.

Vergleich: Gerichteter Graph versus ungerichteter Graph

In einem gerichteten Graphen haben alle Kanten eine eindeutige Richtung, d. h. sie zeigen von einem Knoten zu einem anderen. Diese Art von Graphen wird oft verwendet, um Situationen zu modellieren, in denen die Richtung eine Rolle spielt, z. B. in einem Flussdiagramm oder bei der Modellierung von Abhängigkeiten.

// Gerichteter Graph in Form einer Adjazenzmatrix
int[][] adjMatrix = {
    {0, 1, 0, 0},
    {0, 0, 1, 0},
    {0, 0, 0, 1},
    {0, 0, 0, 0}
};

Im Gegensatz dazu haben in einem ungerichteten Graphen die Kanten keine Richtung. Jede Kante verbindet zwei Knoten und kann in beide Richtungen "gegangen" werden. Diese Art von Graphen wird verwendet, um Situationen ohne Richtungspräferenz darzustellen, wie z. B. in einem sozialen Netzwerk, in dem Freundschaften in der Regel bidirektional sind.

// Ungerichteter Graph in Form einer Adjazenzmatrix
int[][] adjMatrix = {
    {0, 1, 1, 0},
    {1, 0, 1, 1},
    {1, 1, 0, 1},
    {0, 1, 1, 0}
};

Besonderheiten und Anwendungsfälle von gewichteten Graphen

Ein gewichteter Graph ist ein besonderer Typ von Graph, bei dem jede Kante einen bestimmten Wert (das Gewicht) hat. Dieses Gewicht kann ein Kostenwert, eine Länge, eine Kapazität oder jede andere metrische Größe sein, die zu den Kanten einer Verbindung hinzugefügt werden kann.

Zur Darstellung eines gewichteten Graphen in Form einer Matrix fügen wir die Gewichte einfach als Werte in die Matrix ein statt nur die Präsenz einer Kante mit \(1\) oder \(0\) zu markieren.

// Gewichteter Graph in Form einer Matrix
int[][] adjMatrix = {
    {0, 3, 5, 0},
    {3, 0, 2, 6},
    {5, 2, 0, 4},
    {0, 6, 4, 0}
};

Wie werden gewichtete Graphen in der Informatik eingesetzt?

Die Gewichte in gewichteten Graphen können dazu verwendet werden, die Kosten, den Aufwand oder den Nutzen, der mit der Bewegung von einem Knoten zu einem anderen verbunden ist, zu quantifizieren. Daher werden gewichtete Graphen oft in Problemen eingesetzt, die Optimierung erfordern, z.B. in Routing- und Transportnetzwerken, bei der Planung von Projektabläufen oder in Algorithmen zur Wegfindung und zur Bestimmung des kürzesten Wegs. In solchen Szenarien repräsentieren die Gewichte häufig Distanzen, Zeiten, Kosten oder Kapazitäten.

Eine berühmte Anwendung von gewichteten Graphen ist der Dijkstra-Algorithmus, der den kürzesten Weg von einem Startknoten zu allen anderen Knoten in einem Graphen findet. Der Algorithmus nutzt die Gewichte der Kanten, um den Pfad mit der geringsten Gesamtkosten (kürzesten Gewicht) zu finden.

// Pseudo-Code für Dijkstra's Algorithmus
function Dijkstra(Graph, source):
   dist[source] ← 0                           // Initialization
   create vertex priority Queue Q
   for each vertex v in Graph:           
       if v ≠ source
           dist[v] ← INFINITY                 // Unknown distance from source to v
           prev[v] ← UNDEFINED                // Predecessor of v
       Q.add_with_priority(v, dist[v])
   while Q is not empty:                      // The main loop
       u ← Q.extract_min()                    // Remove and return best vertex
       for each neighbor v of u:              // only v that are still in Q
           alt = dist[u] + length(u, v) 
           if alt < dist[v]
               dist[v] ← alt
               prev[v] ← u
               Q.decrease_priority(v, alt)
   return dist[], prev[]

Graphen - Das Wichtigste

  • Graphen in der Informatik: Schlüsselkomponente in der Strukturanalyse von Daten, bestehen aus Knoten und Kanten, die die Beziehungen zwischen den Knoten darstellen.
  • Graph \( G = (V, E) \): besteht aus einer Menge von Knoten \( V \) und einer Menge von Kanten \( E \).
  • Gerichteter vs. Ungerichteter Graph: Gerichtete Graphen haben gerichtete Kanten, ungerichtete Graphen haben ungerichtete Kanten.
  • Gewichteter Graph \( W = (V, E, w) \): hat eine Funktion \( w : E \rightarrow R \), die jeder Kante ein Gewicht zuordnet.
  • Zusammenhängender Graph: bedeutet, dass man von jedem Knoten des Graphen zu jedem anderen Knoten gelangen kann, indem man den Kanten folgt.
  • Java Graphen: können durch eine Reihe von Methoden zur Implementierung und Manipulation von Graphen umgesetzt werden, einschließlich der Verwendung von Adjazenzmatrix oder Adjazenzliste.

Häufig gestellte Fragen zum Thema Graphen

Ein Graph in der Informatik ist eine abstrakte Datenstruktur, die eine Menge von Objekten (Knoten) zusammen mit einer Menge von Paaren dieser Objekte (Kanten) repräsentiert. Diese können zur Darstellung von Netzwerken, Routen, Verbindungen usw. verwendet werden.

Ein Graph ist zusammenhängend, wenn es zwischen jedem Paar von Knoten einen Weg gibt. Das bedeutet, dass man von jedem Knoten zu jedem anderen Knoten gelangen kann, ohne den Graphen verlassen zu müssen.

Ein Graph ist gerichtet, wenn die Kanten zwischen den Knoten eine bestimmte Richtung aufweisen und nicht zweiseitig sind. Das bedeutet, die Verbindung zwischen zwei Knoten kann nur in einer festgelegten Richtung durchlaufen werden.

Graphen werden in der Informatik für die Darstellung von Netzwerken, Zustandsautomaten oder Datenstrukturen verwendet. Sie dienen zur Modellierung von Beziehungen zwischen Objekten und werden in verschiedensten Bereichen wie Wegfindung, Datenanalyse und Optimierungsproblemen angewendet.

Finales Graphen Quiz

Graphen Quiz - Teste dein Wissen

Frage

Was ist ein Graph?

Antwort anzeigen

Antwort

Ein Graph bezeichnet eine Menge von Objekten mit Beziehungen (Relationen) auf diesen Objekten.

Frage anzeigen

Frage

Kanten müssen immer eine Richtung haben

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Wie werden Beziehungen innerhalb von Objekten genannt?

Antwort anzeigen

Antwort

Relationen

Frage anzeigen

Frage

Was ist ein Eulerkreis?

Antwort anzeigen

Antwort

 Ein Eulerkreis ist ein zyklischer Graph, der alle Kanten eines Graphen genau einmal enthält

Frage anzeigen

Frage

Bei einem Tupel ist im Gegensatz zur Menge die _____ relevant

Antwort anzeigen

Antwort

Position

Frage anzeigen

Frage

Eine Menge von Kanten in einem ungerichteten Graphen kann auch als was bezeichnet werden?

Antwort anzeigen

Antwort

symmetrische Relation

Frage anzeigen

Frage

Was ist der Grad eines Knotens?

Antwort anzeigen

Antwort

Die Gesamtzahl der eingehenden und ausgehenden Kanten 

Frage anzeigen

Frage

Was benötigen gewichtete Graphen zusätzlich?

Antwort anzeigen

Antwort

Speicher

Frage anzeigen

Frage

Wie nennst Du einen Graphen, bei dem je zwei verschiedene Knoten miteinander verbunden sind?

Antwort anzeigen

Antwort

Zusammenhängender Graph

Frage anzeigen

Frage

Was kannst Du für die Speicherung von Graphen verwenden?

Antwort anzeigen

Antwort

Eine Adjazenzmatrix oder eine Adjazenzliste

Frage anzeigen

Frage

Sind Adjazenzlisten statisch?

Antwort anzeigen

Antwort

Ja

Frage anzeigen

Frage

Welches davon trifft für eine Adjazenzmatrix zu?

Antwort anzeigen

Antwort

Keine Schlaufe ist zugelassen

Frage anzeigen

Frage

Wie wird ein Graph bezeichnet, dessen gerichtete Kante sich in eine ungerichtete umwandelt?  

Antwort anzeigen

Antwort

Schwach zusammenhängend

Frage anzeigen

Frage

Können Adjazenzlisten auch Vorgängerknoten speichern?

Antwort anzeigen

Antwort

Ja

Frage anzeigen

Frage

Was ist ein Graph in der Informatik?

Antwort anzeigen

Antwort

Ein Graph in der Informatik ist ein abstrakter Datentyp, bestehend aus Knoten und Kanten, der zur Darstellung von Beziehungen zwischen unterschiedlichen Elementen verwendet wird.

Frage anzeigen

Frage

Was ist der Unterschied zwischen einem gerichteten und einem ungerichteten Graphen?

Antwort anzeigen

Antwort

In einem gerichteten Graphen hat jede Kante eine Richtung, während in einem ungerichteten Graphen die Kanten keine bestimmte Richtung haben.

Frage anzeigen

Frage

Was ist ein gewichteter Graph?

Antwort anzeigen

Antwort

Ein gewichteter Graph ist ein Graph, der Werte (auch als Gewichte bezeichnet) auf seinen Kanten hat, die verschiedene Attribute wie Kosten, Längen, Kapazitäten usw. darstellen können.

Frage anzeigen

Frage

Was bedeutet es, wenn ein Graph zusammenhängend ist?

Antwort anzeigen

Antwort

Ein Graph ist zusammenhängend, wenn es zwischen jedem Paar von Knoten einen Pfad gibt, das heißt, dass man von jedem Knoten des Graphen zu jedem anderen Knoten gelangen kann.

Frage anzeigen

Frage

Was ist eine Adjazenzmatrix in der Graphentheorie in Java?

Antwort anzeigen

Antwort

Eine Adjazenzmatrix ist eine 2D-Tabelle (Array) der Größe N x N (wobei N die Anzahl der Knoten ist). Jedes Element Adj[i][j] ist 1, wenn eine Kante vom i-ten zum j-ten Knoten existiert, sonst 0.

Frage anzeigen

Frage

Wie wird ein ungerichteter Graph in Java implementiert?

Antwort anzeigen

Antwort

In einem ungerichteten Graphen hat jede Kante keine spezielle Richtung. Man kann eine Kante hinzufügen, indem man beiden Knoten den anderen Knoten hinzufügt. Dabei wird die addEdge Methode verwendet.

Frage anzeigen

Frage

Wie unterscheiden sich Adjazenzmatrix und Adjazenzliste in der Verwendung des Speicherplatzes?

Antwort anzeigen

Antwort

Die Adjazenzmatrix benötigt O(n^2) Speicherplatz, wobei n die Anzahl der Knoten ist. Die Adjazenzliste dagegen benötigt weniger Speicherplatz, nämlich O(n+2e), wobei e die Anzahl der Kanten ist.

Frage anzeigen

Frage

Welche Angaben speichert eine benutzerdefinierte Klasse "Graph" in Java für die Implementierung von Graphen?

Antwort anzeigen

Antwort

Die benutzerdefinierte Klasse "Graph" in Java speichert die Anzahl der Knoten und die Art des Graphen (wie z.B. ob er gerichtet oder ungerichtet, gewichtet oder ungewichtet ist).

Frage anzeigen

Frage

Was ist der Hauptunterschied zwischen einem gerichteten und einem ungerichteten Graphen?

Antwort anzeigen

Antwort

Bei einem gerichteten Graphen haben alle Kanten eine eindeutige Richtung von einem Knoten zu einem anderen. Bei einem ungerichteten Graphen haben die Kanten keine Richtung, die zwischen zwei Knoten verlaufen.

Frage anzeigen

Frage

Was ist der Schlüsselcharakteristik eines gewichteten Graphen?

Antwort anzeigen

Antwort

Ein gewichteter Graph ist ein Graph, bei dem jede Kante einen spezifischen Wert, das Gewicht, hat. Dieses Gewicht kann eine Kosten, eine Länge, eine Kapazität oder eine andere metrische Größe sein.

Frage anzeigen

Frage

Wo werden gewichtete Graphen in der Informatik verwendet?

Antwort anzeigen

Antwort

Gewichtete Graphen werden oft in Problemen eingesetzt, die eine Optimierung erfordern, etwa in Routing- und Transportnetzwerken, bei der Planung von Projektabläufen oder bei Algorithmen zur Wegfindung und zur Bestimmung des kürzesten Weges.

Frage anzeigen

Frage

Was macht der Dijkstra-Algorithmus nutzt gewichtete Graphen?

Antwort anzeigen

Antwort

Der Dijkstra-Algorithmus nutzt gewichtete Graphen, um den kürzesten Weg von einem Startknoten zu allen anderen Knoten in einem Graphen zu finden. Der Algorithmus nutzt die Gewichte der Kanten, um den Pfad mit den geringsten Gesamtkosten zu finden.

Frage anzeigen

Teste dein Wissen mit Multiple-Choice-Karteikarten

Kanten müssen immer eine Richtung haben

Eine Menge von Kanten in einem ungerichteten Graphen kann auch als was bezeichnet werden?

Wie nennst Du einen Graphen, bei dem je zwei verschiedene Knoten miteinander verbunden sind?

Weiter

Karteikarten in Graphen26

Lerne jetzt

Was ist ein Graph?

Ein Graph bezeichnet eine Menge von Objekten mit Beziehungen (Relationen) auf diesen Objekten.

Kanten müssen immer eine Richtung haben

Falsch

Wie werden Beziehungen innerhalb von Objekten genannt?

Relationen

Was ist ein Eulerkreis?

 Ein Eulerkreis ist ein zyklischer Graph, der alle Kanten eines Graphen genau einmal enthält

Bei einem Tupel ist im Gegensatz zur Menge die _____ relevant

Position

Eine Menge von Kanten in einem ungerichteten Graphen kann auch als was bezeichnet werden?

symmetrische Relation

Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!

Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.

  • Karteikarten & Quizze
  • KI-Lernassistent
  • Lernplaner
  • Probeklausuren
  • Intelligente Notizen
Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App! Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!

Finde passende Lernmaterialien für deine Fächer

Melde dich an für Notizen & Bearbeitung. 100% for free.

Fang an mit StudySmarter zu lernen, die einzige Lernapp, die du brauchst.

Jetzt kostenlos anmelden
Illustration