Computing complexity measures of degenerate graphs
This data structure turns out to be useful for a range of tasks, especially for finding bipartite patterns in degenerate graphs, and we outline an efficient algorithms for counting the number of times specific patterns occur in a graph. The largest factor in the running time of this algorithm is~$O(n^c)$, where~$c$ is a parameter of the pattern we call its \emph{left covering number}.
Concrete applications of this algorithm include counting the number of (non-induced) bicliques in linear time, the number of co-matchings in quadratic time, as well as a constant-factor approximation of the ladder index in linear time.
Finally, we supplement our theoretical results with several implementations and run experiments on more than 200 real-world datasets—the largest of which has 8 million edges—where we obtain interesting insights into the VC-dimension of real-world networks.