我的Java应用程序中有一个非UI用于所谓的“k-ary”树,并且想知道javax.swing.tree包是否是适合该作业的工具,即使它与Swing打包在一起
我有一类,比如,需要组织成树的Widget对象。该Widget树的每个节点可以有0个以上的子节点,因此它不一定是对称的。
我需要一个通用的Tree / Node结构,允许我使用Widgets或任何其他对象。具体来说,我需要一个遍历(至少)后序遍历的遍历。
如果我没有找到正确的方案,有人可以指出我正确的方向吗?
答案 0 :(得分:7)
虽然你可能能够让那个班级做你想做的事情,但我感觉它与JTree的联系比你想要的更紧密。谷歌的一般共识是,建立自己的是一个很好的回报 - 我能够在前几个结果中找到两种不同的实现。
如果你需要自己动手,一般的想法是定义一个带有List<Node>
个孩子的Node类。然后你要做的就是为insert
,delete
之类的东西提供你自己的方法。递归后序遍历就像做一个常规的二进制后序一样简单,除了你不是左右根你简单地走每个做后序的孩子的名单,然后最后迭代根。