Graf, düğümler ve onları birbirine bağlayan kenarlardan oluşur: şehirler ve yollar, sayfalar ve bağlantılar, bir labirentin hücreleri ve geçişleri. Ağaçtan farkı, kökü ve yönü olmamasıdır: bir düğüme birden çok yoldan varılabilir ve yollar döngü yapabilir.
graph = {"a": ["b", "c"], "b": ["d"], "c": ["d"], "d": []}stack = ["a"]seen = {"a"}while stack:node = stack.pop()for nxt in graph[node]:if nxt not in seen:seen.add(nxt)stack.append(nxt)
Izgara da bir graftır, yalnızca komşuluk listesi yazılmaz: bir hücrenin komşuları üstündeki, altındaki, solundaki ve sağındaki hücrelerdir. Labirentte duvarı takip eden bot da aslında grafı geziyordur.