Prvý prechod (alebo vyhľadávanie) pretože graf je podobný ako prvý prechod stromu do šírky (pozri metódu 2 z tento príspevok ).
Jediným háčikom je, že na rozdiel od stromov môžu grafy obsahovať cykly, takže sa môžeme opäť dostať do toho istého uzla. Aby sme sa vyhli spracovaniu uzla viac ako raz, používame boolovské navštívené pole. Pre jednoduchosť sa predpokladá, že všetky vrcholy sú dosiahnuteľné z počiatočného vrcholu. Napríklad v nasledujúcom grafe začneme prechádzať od vrcholu 2. Keď prídeme k vrcholu 0, hľadáme všetky jeho susedné vrcholy. 2 je tiež susedný vrchol s hodnotou 0. Ak neoznačíme navštívené vrcholy, potom sa znova spracuje číslo 2 a stane sa z neho neukončujúci proces. Prvý prechod do šírky nasledujúceho grafu je 2, 0, 3, 1. 
Nasledujú implementácie jednoduchého prechodu Breadth First Traversal z daného zdroja.
Implementácia využíva reprezentácia zoznamu susedstva grafov. STL 's zoznam kontajnera sa používa na ukladanie zoznamov susedných uzlov a frontu uzlov potrebných na prechod BFS.
Python # Python3 Program to print BFS traversal # from a given source vertex. BFS(int s) # traverses vertices reachable from s. from collections import defaultdict # This class represents a directed graph # using adjacency list representation class Graph: # Constructor def __init__(self): # Default dictionary to store graph self.graph = defaultdict(list) # Function to add an edge to graph def addEdge(self, u, v): self.graph[u].append(v) # Function to print a BFS of graph def BFS(self, s): # Mark all the vertices as not visited visited = [False] * (max(self.graph) + 1) # Create a queue for BFS queue = [] # Mark the source node as # visited and enqueue it queue.append(s) visited[s] = True while queue: # Dequeue a vertex from # queue and print it s = queue.pop(0) print(s, end=' ') # Get all adjacent vertices of the # dequeued vertex s. # If an adjacent has not been visited, # then mark it visited and enqueue it for i in self.graph[s]: if not visited[i]: queue.append(i) visited[i] = True # Driver code if __name__ == '__main__': # Create a graph given in # the above diagram g = Graph() g.addEdge(0, 1) g.addEdge(0, 2) g.addEdge(1, 2) g.addEdge(2, 0) g.addEdge(2, 3) g.addEdge(3, 3) print('Following is Breadth First Traversal' ' (starting from vertex 2)') g.BFS(2) # This code is contributed by Neelam Yadav # This code is modified by Susobhan Akhuli> Výkon
Following is Breadth First Traversal (starting from vertex 2) 2 0 3 1>
Časová zložitosť: O(V+E), kde V je počet vrcholov v grafe a E je počet hrán
Pomocný priestor: O(V)
Pozrite si celý článok na Breadth First Search alebo BFS pre graf pre viac detailov!