In computing, a multi-way tree or rose tree is a tree data structure with a variable and unbounded number of branches per node. The name rose tree for this structure is prevalent in the functional programming community, e.g., in the context of the Bird–Meertens formalism. It was coined by Lambert Meertens to evoke the similarly-named, and similarly-structured, common rhododendron.
The following is a definition in Haskell:
data RoseTree a = RoseTree a [RoseTree a]
- ^ Haskell Wiki, accessed 26 January 2012
- ^ Malcolm, Grant (1990). "Data structures and program transformation". Science of Computer Programming 14 (2): 255–279.
- ^ Skillicorn, David B. (1996). "Parallel implementation of tree skeletons" (PDF). J. Parallel and Distributed Computing 39 (2): 115–125.