求树的递归算法

BlueSoftEye 2007-06-06 06:24:36
结构 nodes 是个二维数组,结构如下:
id parentId
=================================
001 -1
002 001
003 001
004 002
005 002
006 002
007 003
008 003
树形式为:
001-->002-->004
001-->002-->005
001-->002-->006
001-->003-->007
001-->003-->008

求递归算法遍历,要求有遍历路径
...全文
253 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjwkl 2007-06-06
  • 打赏
  • 举报
回复
楼主,看看数据结构吧.. 尤其是树的遍历的方式那章..
BlueSoftEye 2007-06-06
  • 打赏
  • 举报
回复
自己已搞定:
/**
* 对树状结构的一维切片的层次进行递归,递归路径中...
* @param sliceColumnAndParentId String[][] 所有节点
* @param rootValue String 根节点
* @param curSliceColumn String 当前节点,第一次运行时,当前节点=根节点
* @param lastBuffer StringBuffer 递归所需的栈的缓存
* @param list List 返回结果
*/
private static void RecursionSlice(final String[][] sliceColumnAndParentId,String rootValue,String curSliceColumn,StringBuffer lastBuffer,List list) {
String[] sons = searchSonSlice(curSliceColumn, sliceColumnAndParentId);
StringBuffer sb=new StringBuffer();

if(curSliceColumn.equalsIgnoreCase(rootValue)){
lastBuffer.append(rootValue).append(";");
}

if (sons.length > 0) {
for (int i = 0; i < sons.length; i++) {
sb.setLength(0);
sb.append(lastBuffer);
curSliceColumn = sons[i];
sb.append(curSliceColumn);
sb.append(";");
RecursionSlice(sliceColumnAndParentId,rootValue,curSliceColumn,sb,list);
}
}
else {
list.add(lastBuffer.toString());
}
}
yeliming 2007-06-06
  • 打赏
  • 举报
回复
你要怎么遍历?深度优先还是广度优先?前序还是后序?
  在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。 《算法导论(原书第3版)》选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在it专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。    第3版的主要变化:    新增了van emde boas树和多线程算法,并且将矩阵基础移至附录。    修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。    移除两章很少讲授的内容:二项堆和排序网络。    修订了动态规划和贪心算法相关内容。    流网络相关材料现在基于边上的全部流。    由于关于矩阵基础和strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。    修改了对knuth-morris-pratt字符串匹配算法的讨论。    新增100道练习和28道思考题,还更新并补充了参考文献。

62,614

社区成员

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

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