  Almost 30 years ago, Zhang and Shasha (1989) published a seminal paper
describing an efficient dynamic programming algorithm computing the tree edit
distance, that is, the minimum number of node deletions, insertions, and
replacements that are necessary to transform one tree into another. Since then,
the tree edit distance has been widely applied, for example in biology and
intelligent tutoring systems. However, the original paper of Zhang and Shasha
can be challenging to read for newcomers and it does not describe how to
efficiently infer the optimal edit script. In this contribution, we provide a
comprehensive tutorial to the tree edit distance algorithm of Zhang and Shasha.
We further prove metric properties of the tree edit distance, and describe
efficient algorithms to infer the cheapest edit script, as well as a summary of
all cheapest edit scripts between two trees.
