关于生成树的问题

Huku 2002-07-31 03:51:40
存在一个数据Bean,如下定义:
class Num
{
public Num()
{
}
public Num(int self_id, int parent_id)
{
this.setSelf_id(self_id);
this.setP_id(parent_id);
}
int self_id;
int parent_id;
public void setSelf_id(int self_id)
{
this.self_id = self_id;
}
public int getSelf_id()
{
return this.self_id;
}
public void setParent_id(int parent_id)
{
this.parent_id = parent_id;
}
public int getParent_id()
{
return this.parent_id;
}
}
现在用ArrayList存储一些Num的实例,如下:
ArrayList array = new ArrayList();
array.add(new Num(6, 3));
array.add(new Num(89, 4));
array.add(new Num(3, 0));
array.add(new Num(10, 3));
array.add(new Num(12, 0));
array.add(new Num(15, 4));
array.add(new Num(18, 4));
array.add(new Num(4, 0));
array.add(new Num(65, 12));
array.add(new Num(99, 15));
array.add(new Num(100, 18));
array.add(new Num(55, 99));
……
实例数量可由array.size()取得。
现在要求对array进行排序,返回ArrayList answer。
answer内数据顺序如下:
(3, 0)
(10, 3)
(12, 0)
(65, 12)
(4, 0)
(89, 4)
(15, 4)
(99, 15)
(55, 99)
(18, 4)
(100, 18)
……
不知大家能否看明白,希望尽快得到高手指教!
...全文
51 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ynli2002 2002-08-01
Vector newArray = new Vector(); //把结果存入新的集合里
int parentId = 0; //记住父节点
while (array.size() > 0) {
for (int i=0; i<array.size(); i++) {
Num num = (Num)array.get(i);
if (num.getParent_id() == parentId) {
parentId = num.getSelf_id();
newArray.add(num);
array.delete(num);
}
}
}
回复
ynli2002 2002-08-01
明白了,在想一想
回复
ynli2002 2002-08-01
排序的要求是什么?
回复
LeeMaRS 2002-08-01
排序的要求是什么? 说明白
回复
gop 2002-08-01
不知道问题在哪里,呵呵
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告