- Published 2010 in LATA

Trees are (data) structures used in many areas of human activity. Tree as the formal notion has been introduced in the theory of graphs. Nevertheless, trees have been used a long time before the foundation of the graph theory. An example is the notion of a genealogical tree. The area of family relationships was an origin of some terminology in the area of the tree theory (parent, child, sibling, . . .) in addition to the terms originating from the area of the dendrology (root, branch, leaf, . . .). There are many applications of trees not only in the area of Computer Science. It seems that the reason for this is the ability of trees to express a hierarchical structure. The reader can find many applications of trees in his own area of interest. Many algorithms were developed for operations on trees used in many applications. A number of them uses some way of traversing the tree. Such operations need a data structure to keep track on the possible continuation of the traversing. In many cases we can identify that the suitable data structure for this role is a pushdown store. The typical structure of these algorithms is based on the set of recursive procedures, where the pushdown store is used for saving return addresses. Theory of tree automata has been developed as a tool for description of sets of trees (tree languages) and, moreover, for formal description of some operations with trees. Models of computation of this theory are various kinds of tree automata. The most researched kind of tree automata are finite tree automata, which recognize regular tree languages and their implementation is based on recursive procedures. Some algorithms for operations on trees assume a linear notation (for example prefix, suffix, or Euler notations) of the input tree. We note that the linear notation can be obtained by the corresponding recursive traversing of the tree. It can be shown that the linear notation of a tree can be generated by a context– free grammar. Therefore, the pushdown automaton can be an appropriate model for algorithms processing linear notations of trees.

@article{Melichar2010ArbologyTA,
title={Arbology: Trees and Pushdown Automata},
author={Borivoj Melichar},
journal={Kybernetika},
year={2010},
volume={48},
pages={402-428}
}