关于生成树的问题

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)
……
不知大家能否看明白,希望尽快得到高手指教!
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
不知道问题在哪里,呵呵

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧