We present results related to satisfying shortest path queries on a planar graph stored in external memory. Let N denote the number of vertices in the graph and let sort(N) denote the number of input/output (I/O) operations required to sort an array of length N. (1) We describe a blocking for rooted trees to support bottom-up traversals of these trees in O(K=B) I/Os, where K is the length of the traversed path. The space required to store the tree is O(N=B) blocks, where N is the number of vertices of the tree and B is the block size. (2) We give an algorithm for computing a 2 3-separator of size O p N for a given embedded planar graph. Our algorithm takes O(sort(N)) I/Os, provided that a breadth- rst spanning (BFS) tree is given. (3) We give an algorithm for triangulating embedded planar graphs in O(sort(N)) I/Os. We use these results to construct a data structure for answering shortest path queries on planar graphs. The data structure uses O N3=2=B blocks of external memory and allo...
David A. Hutchinson, Anil Maheshwari, Norbert Zeh