Scala中的树集合
我想在
Scala中实现一个树.我的特定树使用Swing Split窗格来给出地图上的多个视图.拆分窗格内的任何窗格本身可以进一步分割,以提供额外的视图.我正确的说,TreeMap和TreeSet都不提供Tree功能?请原谅我,如果我误解了这一点.它打击我应该有标准的树收集,这是不好的做法,继续重塑轮子.那里有没有树的实现可能是未来的Scala标准?
所有树有三种类型的元素:根,节和叶.叶子和节点必须对父节点有单个引用.根节点可以对子节点和节点有多个引用.叶子没有孩子.子节点被删除时,节点和根节点不能被删除.我可能还有其他的规则/约束,我错过了. 这似乎是足够的通用规范来证明标准集合.我还建议,应该有一个标准的子类集合,其中Root和Nodes只能有2个子节点或一个单独的子节点.在我特定的情况下,我想要什么 解决方法
实际上,一棵树本身是很无用的,很难说明.
从后者开始,谈论数据结构,树有多少个孩子?节点是否存储值?节点是否存储元数据?孩子们有指点他们的父母吗?您是否将树作为具有指针的节点或阵列上的位置元素存储? 这些都是答案是“依赖”的问题.事实上,你表示孩子们有指向父母的指针,但对于任何不变的树来说都不是真的!您似乎也假设当一些树实际上作为节点存储在单个数组(例如Heap)上时,树总是作为具有引用的节点对象存储. 此外,并不是所有这些要求都可以适应 – 一些是相互排斥的.即使你忽略了这些,你仍然有一个数据结构,没有优化任何东西,笨拙的使用,因为你必须处理很多与你无关的细节. 那么第二个问题就是一棵树本身就没用了. TreeSet和TreeMap利用其插入/删除/查找算法使其成为排序数据的良好数据结构的特定树.但是,这并不是树木的唯一用途.树可以用于搜索空间算法,代表树状现实世界信息,组成文件系统等.有时候,taks在图中找到一棵树.这些使用中的每一个都需要不同的表示和不同的算法 – 这些算法是使它们有用的. 而最重要的是,编写一个树类是微不足道的.问题是编写算法来操纵它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |