如何获取一棵树到叶子结点的路径?

常遇道 2008-08-01 03:56:33
我是用dTree.js来生成树:

d = new dTree('d');
d.add(01,0,'珠宝');
d.add(0101,01,'黄金');
d.add(010101,0101,'项链');
d.add(01010101,010101,'镶嵌');
document.write(d);

如何获取树路径:01,珠宝,0101,黄金,010101,项链,01010101,镶嵌






...全文
382 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
常遇道 2008-09-01
  • 打赏
  • 举报
回复
常遇道 2008-08-26
  • 打赏
  • 举报
回复
是从数据库中读出来的,它自带的哪个递归函数可以实现任何一个节点到根结点的路径?

现在我实现的方式是按当前子节点,用递归去找到父结点,也就是通过递归查询数据库的方式实现,总感受现实的效率不高,
而且要反复查询数据库。

实现方法:
/**
* 递归获取类别编码,类别名称
* @param lbbm
* @return
* @throws SysException
*/
public List getBMMCInfo(String gyszh,String lbbm)
{
List list = new ArrayList();
try
{
getLBBMMC(list,gyszh,lbbm);
} catch (SysException e)
{
e.printStackTrace();
}
return list;
}

/**
* 递归获取类别编码,类别名称
* @param listBMMC 类别编码,类别名称记录集
* @param gyszh 企业帐号
* @param lbbm 类别编码
* @return
* @throws SysException
*/
public void getLBBMMC(List list,String gyszh,String lbbm) throws SysException
{
Pbtype zlb = null;
String hql = "from Pbtype where gyszh ='" + gyszh + "' and lbbm ='" + lbbm + "'";
List il= dao.find(hql);
for (int i = 0; i < il.size(); i++)
{
zlb = (PbGysspflb) list.get(i);
list.add(zlb.getLbbm()); //存入类别编码
list.add(zlb.getLbmc()); //存入类别名称
getLBBMMC(list,gyszh,zlb.getFlbbm());
}
}
kokobox 2008-08-02
  • 打赏
  • 举报
回复
如果数据在数据库中,可以用他自带的递归函数,可以找出任何一个节点到根结点的路径



南南北北 2008-08-02
  • 打赏
  • 举报
回复
d = new dTree('d');
d.add(01,0,'珠宝');
d.add(0101,01,'黄金');
d.add(010101,0101,'项链');
d.add(01010101,010101,'镶嵌');
document.write(d);

硬编码还是读数据读出来的?

如果是读数据,那就从你读的数据里处理吧.
xxdjnl 2008-08-01
  • 打赏
  • 举报
回复
up

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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