为了便于查看,逗号已替换为连字符。
作为输入,一组数值数组。例子:
2-1-2-0-6-7
2-1-2-0-7-0
2-1-2-0-7-1-2-1-3-1-6
2-1-2-0-7-1-2-1-3-2-8
2-1-2-0-7-1-3-4
2-1-2-0-7-1-3-5
2-1-2-0-7-1-4
2-1-2-0-7-1-4-6
2-1-2-0-8
2-1-2-2
输出应该是一棵树,其顶点是其从属数组的初始子数组。可以创建新数组,但是如果创建新数组,那么每个顶点必须从属于至少两个数组,即如果ab类中只有一个abcde类,则不必选择ab类(除非ab 在输入处指定),通过直接嵌套到 a 类 abcde。
从我给出的例子中应该可以得出以下内容,在保持层次结构的同时,这里用空格表示:
2-1-2 (создаётся класс)
2-1-2-0 (создаётся класс)
2-1-2-0-6-7
2-1-2-0-7 (создаётся класс)
2-1-2-0-7-0
2-1-2-0-7-1 (создаётся класс)
2-1-2-0-7-1-2-1-3 (создаётся класс)
2-1-2-0-7-1-2-1-3-1-6
2-1-2-0-7-1-2-1-3-2-8
2-1-2-0-7-1-3 (создаётся класс)
2-1-2-0-7-1-3-4
2-1-2-0-7-1-3-5
2-1-2-0-7-1-4
2-1-2-0-7-1-4-6
2-1-2-0-8
2-1-2-2
重要的是,当处理器遇到一个 2-1-2-0-7-1-3-4 的数组时,它必须创建一个类 2-1-2-0-7-1,并在类 2-1-2 -0-7 和 2-1-2-0-7-1-2-1-3(后者是从前面两个数组的初始比较中获得的),因为数组 2-1 -2-0- 将进一步放置在这个类 7-1-3-4 中(在这种情况下是间接的),它不是类 2-1-2-0-7-1-2-1 的代表-3,但属于创建的类 2-1-2-0-7 -1。
编程语言可能是java,但不一定——排序原则很重要。
我最终创建了一个将数组排序成树的类
然后,当显示在屏幕上时,在 ItemFolder 类中,这是一个自定义布局,我添加了方法
最后,用数组数组填充树:
一切都按计划进行。感谢大家的评论使我做出正确的决定)