import java.util.ArrayList;
import java.util.List;
public class Test {
static String output = "";
static List<City> list = new ArrayList<City>();
public static void main(String[] args) {
list.add(new City(1, "中国", 0, ""));
list.add(new City(2, "四川", 1, "中国"));
list.add(new City(3, "北京", 1, "中国"));
list.add(new City(4, "成都", 2, "四川"));
list.add(new City(5, "朝阳区", 3, "北京"));
City firstNode = (City)list.get(0);
System.out.println(visit(firstNode.ParentID));
}
// 递归算法
private static String visit(Integer ID) {
for (City node : list) {
if (node.ParentID == ID) {
// 这里是关键
output += "<node label='" + node.Name + "'>" + "\n";
visit(node.ID);
output += "</node>" + "\n";
}
}
return output;
}
}
输出结果如下:
<node label='中国'>
<node label='四川'>
<node label='成都'>
</node>
</node>
<node label='北京'>
<node label='朝阳区'>
</node>
</node>
</node>
分享到:
相关推荐
根据提供的标题“C++试题--递归”以及描述部分的内容来看,这是一道涉及递归算法的 C++ 编程题目。描述中的示例显示了一个通过用户输入 X-Y 坐标来填充一个特定形状(L 形)块到一个二维数组中的过程。用户首先输入...
这是一道C语言 求n的阶乘,方法很简单,代码不超过5行
3. 5个正整数组合问题:这是一道组合数学问题,需要通过回溯或者动态规划找出5个数的组合,使得它们的和为23且所有可能的加法组合覆盖1到23。 4. 分解质因数:对于65535,需要分解为若干个质数的乘积,这需要质因数...
蓝桥杯 Java 历年真题中的一道题目使用递归算法来实现全排列算法。递归算法的优点是可以简洁地解决问题,但缺点是可能会出现栈溢出错误。 Java 中实现递归算法需要注意调用函数的返回值和终止条件,避免出现栈溢出...
本篇笔记主要介绍了算法面试题的基础知识范围,包括时间复杂度和空间复杂度的计算方法、递归算法的时间复杂度、图的遍历/DFS/BFS的时间复杂度等。这些基础知识点对于开发者来说非常重要,可以帮助他们更好地理解和...
斐波那契数列在计算机科学中常用于理解和实践递归算法。编写一个Java程序来计算兔子繁殖问题,可以使用循环或递归方法。 【程序 2】此题要求找出101到200之间的素数。素数是大于1且只有1和其本身两个正因子的自然数...
首先,大家思考一道算法题:如何实现二叉树的中序遍历? 对于树的遍历,无论是前序、中序还是后序遍历,大家可能下意识的就会想到使用递归操作,为什么呢?因为递归操作实现起来“简单”啊! 下面为实现二叉树中序...
由于压缩包内的文件名为“蓝桥杯c++_蓝桥杯竞赛练习之算法提高题交换Easy”,我们可以推测这可能包含了一道或一系列的编程题目,题目可能要求选手使用C++编写程序来解决关于交换元素的问题。这类问题可能包括但不...
- 第四部分则是所有谜题的详细解答,不仅给出了答案,还解释了每一道题目的解题过程。 - **参考文献**:书籍最后列出了参考文献列表,供读者进一步阅读和学习。 - **索引**:书末附有设计策略和分析方法的索引,...
第77题“组合”是LeetCode中的一道经典递归与回溯问题,旨在考察开发者对这两种编程技巧的理解和应用。 递归是一种解决问题的方法,它将一个问题分解为更小的子问题,直到子问题变得足够简单可以直接求解。递归通常...
- **实现思路**:包括但不限于递归、动态规划、贪心算法、排序算法等,每一道题目都有其独特的解题思路和技术要点。 以上是对这些经典C语言算法例题的核心知识点的总结和解析,通过这些练习可以帮助初学者更好地...
- **4.3-1** 至 **4.3-5** 介绍了如何利用主定理来分析递归算法的时间复杂度。 ### 第5章:概率分析与随机化算法 - **5.1-1** 讨论了随机选择算法的概率性质。 - **5.2-1** 至 **5.2-5** 涉及到了概率分析的基础...
“百钱百鸡”是中国古代的一道数学题目,如今也常作为算法入门的例题。题目的要求是用100文钱买100只鸡,公鸡每只5文钱,母鸡每只3文钱,小鸡3只1文钱,问公鸡、母鸡、小鸡各多少只?使用C语言,我们可以通过穷举法...
在这里,我们需要编写Java代码来绘制分形树,这可能涉及递归算法和向量图形库如Java2D。 3. **三水杯倒水问题**: 这是一道经典的容量限制问题,我们需要找到将三个不同容量的杯子填满或清空特定水位的方法。解决...
分治策略是一种递归算法,将问题分解成规模更小的问题,然后递归解决这些问题。分治算法的优点是可以将问题简化,但需要注意递归的深度和时间复杂度。 本PPT学习教案对基础算法中的枚举策略、贪心策略和分治策略...
本文将详细介绍C语言中一些经典的算法例子,这些例子覆盖了递归、循环控制、数学计算等多个方面,并通过具体代码示例帮助读者更好地理解并运用这些算法。 首先是猴子吃桃问题,这是一道经典的递推问题。问题描述了...
Scratch是一种专为儿童设计的编程语言,它通过积木块式的编程界面,使得学习编程变得简单而有趣。本压缩包“scratch10道算法题及答案.zip”提供了10个精心设计的算法题目,旨在帮助孩子们提升逻辑思维能力和问题解决...
从给出的部分代码来看,该题目涉及到了递归算法的应用,主要使用了C++语言进行实现。 ### 代码解析 #### 基本结构 代码中包含了一个`main`函数和一个辅助函数`digui`。`main`函数中通过循环读取输入,并调用`...
其中,寻找平面上最近点对问题是该领域内一道经典且基础的题目,它的解决对于地理信息系统、图像处理、机器学习等多个领域都有着广泛的应用。本文将探讨如何在C语言中实现寻找最近点对的算法,以及该实现所面对的...