Rose tree

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computing, a multi-way tree or rose tree is a tree data structure with a variable and unbounded number of branches per node.[1] The name rose tree for this structure is prevalent in the functional programming community, e.g., in the context of the Bird–Meertens formalism.[2] It was coined by Lambert Meertens to evoke the similarly-named, and similarly-structured, common rhododendron.[3]


The following is a definition in Haskell:

data RoseTree a = RoseTree a [RoseTree a]


  1. ^ Bird, Richard (1998). Introduction to Functional Programming using Haskell. Hemel Hempstead, Hertfordshire, UK: Prentice Hall Europe. p. 195. ISBN 0-13-484346-0.
  2. ^ Malcolm, Grant (1990). "Data structures and program transformation". Science of Computer Programming. 14 (2): 255–279. doi:10.1016/0167-6423(90)90023-7.
  3. ^ Skillicorn, David B. (1996). "Parallel implementation of tree skeletons" (PDF). Journal of Parallel and Distributed Computing. 39 (2): 115–125. doi:10.1006/jpdc.1996.0160.

External links[edit]