Premium
Drawing non‐layered tidy trees in linear time
Author(s) -
Ploeg Atze
Publication year - 2014
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.2213
Subject(s) - computer science , time complexity , invariant (physics) , algorithm , running time , tree (set theory) , spacetime , extension (predicate logic) , node (physics) , mathematics , combinatorics , programming language , physics , quantum mechanics , mathematical physics , structural engineering , engineering
SUMMARY The well‐known Reingold–Tilford algorithm produces tidy‐ layered drawings of trees: drawings where all nodes at the same depth are vertically aligned. However, when nodes have varying heights, layered drawing may use more vertical space than necessary. A non‐layered drawing of a tree places children at a fixed distance from the parent, thereby giving a more vertically compact drawing. Moreover, non‐layered drawings can also be used to draw trees where the vertical position of each node is given, by adding dummy nodes. In this paper, we present the first linear‐time algorithm for producing non‐layered drawings. Our algorithm is a modification of the Reingold–Tilford algorithm, but the original complexity proof of the Reingold–Tilford algorithm uses an invariant that does not hold for the non‐layered case. We give an alternative proof of the algorithm and its extension to non‐layered drawings. To improve drawings of trees of unbounded degree, extensions to the Reingold–Tilford algorithm have been proposed. These extensions also work in the non‐layered case, but we show that they then cause a O ( n 2 ) run‐time. We then propose a modification to these extensions that restores the O ( n ) run‐time. Copyright © 2013 John Wiley & Sons, Ltd.