Cache-Oblivious Data Structures and Algorithms for Undirected Breadth-First Search and Shortest Paths