In practice, the D strings that appear within the matrix M of Algorithm 1 will always represent complete punctuated trees.
they can actually be represented in memory as such, and different trees may share subtrees for efficiency (using pointers).