树就像数据结构

时间:2009-11-04 09:41:07

标签: data-structures

您好我正在处理一个问题并可以提供一些帮助,我正在使用C#。

我要做的是创建如下数据结构:

我需要在页面上布置带有x和y坐标的项目。现在实际布局不是一个问题,更多的是有一套有效的坐标。

我的列表中的每个项目都可以有多个父项和多个子项,其中起始项没有父项,将父项定义为起始元素。

现在,我需要做的就是获取每个元素的坐标,以便所有内容都正确定位,子项位于中心位置的父母之上。

如果一个元素只有一个子元素,那么子元素被放置在同一个x坐标上的父元素下面,如果父元素有多个子元素,那么子元素将被放置在相同的空格中并且父元素需要在孩子们上面的中间到两条相等长度的线连接到父母的两个孩子。

此外,元素也可以有多个父级。

如果有人对我有任何想法或建议,我有一个图形文件,说明我想要做些什么来给你一个更好的例子。如果您有兴趣,请告诉我,我也可以通过该文件向您发送邮件。

由于

1 个答案:

答案 0 :(得分:1)

我认为没有对数据的进一步限制是不可能的。例如,数据可能包含一个循环,在这种情况下,父母被吸引到儿童之上的条件是不可能的。

我可以想到一种算法可以满足树状图的需要:

  1. 从下到上计算元素所需的宽度:
    • 叶节点为1
    • 节点T的n * x,有n个子节点,x是最宽子节点的宽度
  2. 相对于节点的计算宽度
  3. 从上到下布局图形