AbstractHow to represent a graph in memory is a fundamental data-structuring problem. In the usual representations, a graph is stored by representing explicitly all vertices and all edges. The names (labels) assigned to vertices are used only to encode the edges and reveal nothing about the structure of the graph itself and hence are a “waste” of space. In this context, we present a general framework for labeling any graph so that adjacency between any two given vertices can be tested in constant time. The labeling scheme assigns to each vertex x a O(δ(x)log2n) bit label, where n is the number of vertices and δ(x) is x's degree. The adjacency test can be performed in seven steps and the scheme can be computed in polynomial time. The propose...