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.
We shall call such trees rose trees, a literal translation of rhododendron (Greek ῥόδον = rose, δένδρον = tree), because of resemblance to the habitus of this shrub, except that the latter does not grow upside-down on the Northern hemisphere.
The following is definitions in Haskell:
data Tree a = Tree a [Tree a] data Tree a = Cofree  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.
- Meertens, Lambert. "First steps towards the Theory of Rose Trees" (PDF): 22. Cite journal requires
- Rose tree on the Haskell wiki
- Bayesian Rose Trees
- Data.Tree, an implementation of basic rose tree operations in the Haskell containers package
- [Skillicorn, David B. (1995). "Parallel implementation of tree skeletons"]
|This computer science article is a stub. You can help Wikipedia by expanding it.|