Der Suchalgorithmus ist ein schrittweises Verfahren zum Auffinden bestimmter Daten und zum Abrufen von Elementen aus einer beliebigen Datenstruktur, wobei die Datenstruktur eine wichtige Rolle bei der Steigerung der Leistung eines Programms oder einer Software spielt. Die Software sollte die benötigten Daten so schnell wie möglich speichern und abrufen. Der schwierigste Teil für die Programmierer besteht darin, die geeignete Datenstruktur für ein Programm auszuwählen, je nachdem, welche Art von Operation erforderlich ist. Die Breadth-First-Suche und die Deep-First-Suche sind zwei Beispiele für Suchalgorithmen. Die Breadth-First-Suche ist der einfachste Traversieralgorithmus für die Suche in einem Graphen, er kann einen Graphen mit Milliarden von Knoten und Kanten verarbeiten. Eines der Hauptprobleme der Breadth-First-Suche ist, dass sie sehr viel Zeit in Anspruch nimmt. Die Tiefensuche hingegen ist ein Algorithmus zum Durchlaufen oder Durchsuchen von Baum- oder Graphdatenstrukturen. Beide sind jedoch für verschiedene Datenstrukturen weit verbreitet und haben viele interessante Anwendungen. Unser Ziel ist es, einen Überblick über beide Algorithmen zu geben, sie zu implementieren und einige ihrer Anwendungen zu beschreiben.