社区
Java SE
帖子详情
求树的递归算法
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
求递归算法遍历,要求有遍历路径
...全文
261
3
打赏
收藏
求树的递归算法
结构 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 求递归算法遍历,要求有遍历路径
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
你要怎么遍历?深度优先还是广度优先?前序还是后序?
读懂C++递归程序
通过递归,可以简洁地表达和实现复杂的算法,例如树的遍历、分治算法和快速排序等。递归程序的正确性和效率在很大程度上依赖于正确设置基本情况和递归条件,以及递归的深度和状态管理。 通过这篇文章,我们可以看到...
JAVA近百种算法大全
3. Kruskal算法和Prim算法:求解最小生成树,用于网络连接优化。 4. Ford-Fulkerson算法:计算网络的最大流,解决分配问题。 五、动态规划 1. 背包问题:在容量限制下,选择物品以最大化价值。 2. 最长公共子序列:...
c语言常用算法集
4. **图算法**:CH10和CH18可能涉及到图的基本概念,如深度优先搜索(DFS)和广度优先搜索(BFS),以及最小生成树(Prim或Kruskal算法)、最短路径(Dijkstra或Floyd算法)等。 5. **动态规划**:CH14和CH15可能...
java算法大全(含源码包)
4. **图算法**:包括深度优先搜索(DFS)、广度优先搜索(BFS)、最短路径算法(如Dijkstra算法、Floyd算法)以及最小生成树算法(如Prim算法、Kruskal算法)等,这些在解决网络问题、社交网络分析等领域有着广泛...
结构之法算法之道blog最新博文集锦第6期CHM文件
4. **图论**:在第6期中,可能涉及图的遍历(深度优先搜索和广度优先搜索)、最小生成树(Prim算法或Kruskal算法)、最短路径问题(Dijkstra算法或Floyd-Warshall算法)等。 5. **动态规划**:这是一类解决最优化...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章