program a-star
// Initialisierung der Open List, die Closed List ist noch leer
// (die Priorität bzw. der f Wert des Startknotens ist unerheblich)
openlist.enqueue(startknoten, 0)
// diese Schleife wird durchlaufen bis entweder
// - die optimale Lösung gefunden wurde oder
// - feststeht, dass keine Lösung existiert
repeat
// Knoten mit dem geringsten f Wert aus der Open List entfernen
currentNode := openlist.removeMin()
// Wurde das Ziel gefunden?
if currentNode == zielknoten then
return PathFound
// Der aktuelle Knoten soll durch nachfolgende Funktionen
// nicht weiter untersucht werden damit keine Zyklen entstehen
closedlist.add(currentNode)
// Wenn das Ziel noch nicht gefunden wurde: Nachfolgeknoten
// des aktuellen Knotens auf die Open List setzen
expandNode(currentNode)
until openlist.isEmpty()
// die Open List ist leer, es existiert kein Pfad zum Ziel
return NoPathFound
end