Trees are one of the fundamental data structures used in Computer Science. We
present a new kind of acyclic pushdown automata, the tree pattern pushdown
automaton and the nonlinear tree pattern pushdown automaton, constructed for
an ordered tree. These automata accept all tree patterns and nonlinear tree
patterns, respectively, which match the tree and represent a full index of
the tree for such patterns. Given a tree with n nodes, the numbers of these
distinct tree patterns and nonlinear tree patterns can be at most 2n?1 +n and
at most (2+v)n?1+2, respectively, where v is the maximal number of nonlinear
variables allowed in nonlinear tree patterns. The total sizes of
nondeterministic versions of the two pushdown automata are O(n) and O(n2),
respectively. We discuss the time complexities and show timings of our
implementations using the bit-parallelism technique. The timings show that
for a given tree the running time is linear to the size of the input pattern.