0

我正在尝试创建一棵树,其中一个根和 26 个叶节点是字母表中的字符。是否有任何特定的阅读材料/资源可以帮助我更多地了解 Scala 中的树结构?

4

2 回答 2

2

你想要的是霍夫曼编码。在此处尝试Scala课程中的函数式编程原理。该课程第 4 周的作业正是您所需要的。

于 2013-06-26T13:57:22.100 回答
2

像这样的东西?

scala> abstract class Tree[A]
defined class Tree

scala> case class Node[A](children : List[Tree[A]]) extends Tree[A]
defined class Node

scala> case class Leaf[A](value : A) extends Tree[A]
defined class Leaf

scala> val root = Node(children = ('A' to 'Z') map (Leaf(_)) toList )
root: Node[Char] = Node(List(Leaf(A), Leaf(B), Leaf(C), Leaf(D), Leaf(E), Leaf(F), ...
于 2013-06-26T14:38:08.493 回答