当前位置:编程学习 > JAVA >>

如何存储这个结构?


描述:随着时间推移,A变为B,B分为C D E,C和D合并为I,E变为H,I和H又合并为J,其中,A-J是Object,最上面是现在的时间。

问题:我要用Graphics画出这个图形,要根据下面的Object的宽度和位置得到上面的Object的宽度和位置,比如,我需要得到C的最左侧和D的最右侧位置,才能得到I的位置和宽度。所以,我要从最下面开始遍历,然后从左侧遍历才行。

请问,如何存储,用什么数据结构?才能体现这种关系啊?才能画出这个模型呢?

谢谢各位! graphics2D 数据结构 --------------------编程问答-------------------- 这个问题归根结底不就是计算吗?需要什么数据结构吗?我感觉没必要 --------------------编程问答-------------------- List<Map>试试 --------------------编程问答--------------------
引用 1 楼 huxiweng 的回复:
这个问题归根结底不就是计算吗?需要什么数据结构吗?我感觉没必要

hi,我要循环遍历得到所有的Object,判断拖动的位置,然后遍历拖动点附近的Object,然后插入到容器里。
A是一个常量模型,B是一个分割模型,B分割成了C,D,E,C,D,E相当于B的孩子,所以可以把B,C,D,E当成一个模型。H,I,J也是常量模型。
现在我把A和B放在了一个主VectorMain里,B的孩子们C,D,E分别有自己的VectorC, VectorD, VectorE,比如VectorE存储H,这样就能递归遍历Vector得到所有的模型了。
但是问题是,我不知道该把模型I放在哪个Vector里,放在VectorC? 还是VectorD?遍历的时候,又如何递归遍历到I呢? 模型J也是类似的情况 --------------------编程问答--------------------
引用 3 楼 gaoisbest1122 的回复:
Quote: 引用 1 楼 huxiweng 的回复:

这个问题归根结底不就是计算吗?需要什么数据结构吗?我感觉没必要

hi,我要循环遍历得到所有的Object,判断拖动的位置,然后遍历拖动点附近的Object,然后插入到容器里。
A是一个常量模型,B是一个分割模型,B分割成了C,D,E,C,D,E相当于B的孩子,所以可以把B,C,D,E当成一个模型。H,I,J也是常量模型。
现在我把A和B放在了一个主VectorMain里,B的孩子们C,D,E分别有自己的VectorC, VectorD, VectorE,比如VectorE存储H,这样就能递归遍历Vector得到所有的模型了。
但是问题是,我不知道该把模型I放在哪个Vector里,放在VectorC? 还是VectorD?遍历的时候,又如何递归遍历到I呢? 模型J也是类似的情况



描述:随着时间推移,A变为B,B分为C D E,C和D合并为I,E变为H,I和H又合并为J,其中,A-J是Object,A是一个常量模型,B是一个分割模型,B分割成了C,D,E,C,D,E相当于B的孩子,所以可以把B,C,D,E当成一个模型。H,I,J也是常量模型。A-J是拖动上去的。
最上面是现在的时间。

我要循环遍历得到所有的Object,用Graphics画出这个图形,要根据下面的Object的宽度和位置得到上面的Object的宽度和位置,比如,我需要得到C的最左侧和D的最右侧位置,才能得到I的位置和宽度。所以,我要从最下面开始遍历,然后从左侧遍历才行。

现在我把A和B放在了一个主VectorMain里,B的孩子们C,D,E分别有自己的VectorC, VectorD, VectorE,比如VectorE存储H,这样就能递归遍历Vector得到所有的模型了。
但是问题是,我不知道该把模型I放在哪个Vector里,放在VectorC? 还是VectorD?遍历的时候,又如何递归遍历到I呢? 模型J也是类似的情况

请问,把I放在哪个Vector里,才能遍历到I?或者有没有其他的存储C和D合并为I这种关系呢?

谢谢各位! --------------------编程问答-------------------- 面向对象:a,bcdef 封装成一个对象,对象里面有你要的属性,如:宽,高,左侧位置,右侧位置,或者是层次(a 第一层) --------------------编程问答-------------------- 顶一顶,不知道有没有人静下心来想想... --------------------编程问答-------------------- 直接XML存上就得了.说到底就是你怎么取方便你就怎么存. --------------------编程问答--------------------
引用 7 楼 zyb134506 的回复:
直接XML存上就得了.说到底就是你怎么取方便你就怎么存.
能否简要写一下,图中A-J关系如何用XML存储? --------------------编程问答--------------------

 <node name="A" width="300" height="100" color="#ff0000" x="150" y="150"/>
 <node name="J" width="300" height="100" color="#ffff00" x="0" y="600"/>
....
--------------------编程问答--------------------

<node name="A" width="" height="" color="" x="" y="" parentsName=""/>
<node name="B" width="" height="" color="" x="" y="" parentsName="A"/>
<node name="C" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="D" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="E" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="H" width="" height="" color="" x="" y="" parentsName="E"/>
<node name="I" width="" height="" color="" x="" y="" parentsName="C,D"/>
<node name="J" width="" height="" color="" x="" y="" parentsName="H,I"/>

怎么存都可以,关键是你读取后怎么处理数据逻辑. --------------------编程问答--------------------
引用 10 楼 zyb134506 的回复:

<node name="A" width="" height="" color="" x="" y="" parentsName=""/>
<node name="B" width="" height="" color="" x="" y="" parentsName="A"/>
<node name="C" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="D" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="E" width="" height="" color="" x="" y="" parentsName="B"/>
<node name="H" width="" height="" color="" x="" y="" parentsName="E"/>
<node name="I" width="" height="" color="" x="" y="" parentsName="C,D"/>
<node name="J" width="" height="" color="" x="" y="" parentsName="H,I"/>

怎么存都可以,关键是你读取后怎么处理数据逻辑.
谢谢你的回答。
对于这个图,各个模型是拖动上去的,比如先有一个Z,拖动分支模型B到Z上,就出现B和Z。如图:

拖动分支模型A到B1上,模型C到B2上,出现如图:

其他的类似。

我是利用Vector存储递归遍历各个模型的。
首先有一个Vector存储模型Z和分支模型B。对于分支B1和B2来说,它们分别有各自的Vector:VectorB1和VectorB2,VectorB1里存储A,VectorB2里存储C和F。
当然,对于分支模型A来说,A1有VectorA1,存储D和G;A2有VectorA2,存储E。
这样通过递归调用,就能从最左侧(也就是A1,D,G)确定它们的位置,然后确定A2的位置(确保不与A1重叠),它们的高度是平均分的。
问题是:我不知道如何存储模型I,我想通过拖动I到E,F之间的空隙,生成如图:

,所以,我不知道如何存储I,是存储到VectorA2?还是VectorB2?
请问你有什么想法吗?
用Vector存储,递归遍历,这样可以吗?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,