de Bruijn graph

The de Bruijn graph is a directed graph used for representing overlapping strings in a collection of k-mers. Given a set $S$ containing DNA strings of length $k+1$, the de Bruijn graph $B$ corresponding to $S \cup S^{\textrm{rc}}$ (i.e., $S$ together with all possible reverse complements of strings in $S$) is defined in the following way: