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]
- Bird, Richard (1998). Introduction to Functional Programming using Haskell. Hemel Hempstead, Hertfordshire, UK: Prentice Hall Europe. p. 195. ISBN 0-13-484346-0.
- Malcolm, Grant (1990). "Data structures and program transformation". Science of Computer Programming. 14 (2): 255–279. doi:10.1016/0167-6423(90)90023-7.
- 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.
- Rose tree on the Haskell wiki
- Bayesian Rose Trees
- Data.Tree, an implementation of basic rose tree operations in the Haskell containers package
|This computer science article is a stub. You can help Wikipedia by expanding it.|