  Phylogenetic networks are used to represent evolutionary scenarios in biology
and linguistics. To find the most probable scenario, it may be necessary to
compare candidate networks, to distinguish different networks, and to see when
one network is contained in another. In this paper, we introduce cherry-picking
networks, a class of networks that can be reduced by a sequence of two graph
operations. We show that some networks are uniquely determined by the sequences
that reduce them---we call these the reconstructible cherry-picking networks,
and further show that given two cherry-picking networks within the same
reconstructible class, one is contained in the other if a sequence for the
latter network reduces the former network. By restricting our scope to
tree-child networks, we show that the converse of the above statement holds,
thereby showing that {\sc Network Containment}, the problem of checking whether
a network is contained in another, can be solved in linear time for tree-child
networks. We implement this algorithm in Python and show that the linear-time
theoretical bound on the input size is achievable in practice. Lastly, we
provide a linear time algorithm for deciding whether two tree-child networks
are isomorphic.
