-
这个问题一直没有解答,求解。10
//输入参数为广度优先算法遍历的二叉树字符串LIST,每个节点对应子节点数LIST。
//
public static TreeNode<String> rebuildFromBFSList(List<String> bfsData, List<Integer> childCounts)
{
// TODO: your code for part (b)
return null;
}
bfsData A B C D E F G
childCounts 6 4 0 0 2 0 0
// A
// / \
// B C
// / \
// D E
// / \
// F G
示例数据如上图所示,求解,不胜感激。2013年5月14日 13:16
1个答案 按时间排序 按投票排序
-
public static void main(String[] args){
ArrayList<String> data=new ArrayList<String>();
data.add("A");
data.add("B");
data.add("C");
data.add("D");
data.add("E");
data.add("F");
data.add("G");
ArrayList<Integer> counts=new ArrayList<Integer>();
counts.add(6);
counts.add(4);
counts.add(0);
counts.add(0);
counts.add(2);
counts.add(0);
counts.add(0);
TreeNode root=rebuildFromBFSList(data,counts);
printNode(root);
}
static class TreeNode{
String value;
Integer i;
TreeNode left;
TreeNode right;
public TreeNode(String s,Integer i){
this.value=s;
this.i=i;
this.left=this.right=null;
}
}
public static TreeNode rebuildFromBFSList(List<String> bfsData, List<Integer> childCounts)
{
Queue<TreeNode> queue=new LinkedList<TreeNode>();
int i=0;
int len=childCounts.size();
TreeNode root=new TreeNode(bfsData.get(i),childCounts.get(i));
i++;
queue.offer(root);
while(!queue.isEmpty()){
TreeNode n=queue.poll();
if(n.i==0) continue;
int sum=0;
for(;i<len;++i){
int k=childCounts.get(i);
TreeNode child=new TreeNode(bfsData.get(i),k);
queue.offer(child);
if(sum==0) n.left=child;
else n.right=child;
k=k+1;
sum+=k;
if(sum==n.i) {
i=i+1;
break;
}
}
}
return root;
}
6 4 0 0 2 0 0
这里有个规律,6=4+0+1+1,1指的是左右节点。代码应该是对的。。2013年5月14日 17:28
相关推荐
这个过程会一直进行,直到所有角色都安全过河,或者确定没有解决方案。 在VC++2005环境下实现这个问题,我们需要创建一个程序,包含以下关键部分: 1. **状态表示**:用两个整数分别表示河两岸的传教士和食人族...
在高考数学复习的深入阶段,解析几何问题一直是学生面临的难点之一,特别是对于江苏地区的考生而言,高考数学的解答题部分要求学生具备扎实的理论基础和灵活的解题技巧。针对江苏省2016年高考数学复习,本专题训练...
在2021年中考数学的考场上,几何综合题一直是考生们需要重点突破的题型之一。这类题目不仅考察学生对几何图形性质的理解和运用,还测试学生的逻辑思维能力和解决问题的综合能力。通过对几何综合压轴问题的解答,我们...
虽然题目9没有给出完整的情景,但学生需要根据给出的条件,提出问题并进行解答。这类题目的解答训练有助于学生理解数学运算的本质,并能够在缺乏具体情境的情况下,灵活运用数学公式进行问题解决。 综上所述,四...
结构力学求解器(SM Solver for Windows)是一个面向教师、学生以及工程技术人员的计算机辅助分析计算软件,其求解内容包括了二维平面结构(体系)的几何组成、静定、超静定、位移、内力、影响线、包络图、自由振动...
在小学五年级的数学教学中,应用题一直是教学中的重难点,它不仅考查学生对数学基础知识的掌握情况,更重要的是考查学生将数学知识应用于解决实际问题的能力。根据文件标题“五年级数学解决问题解答应用题练习试题...
这一部分将详细介绍微分方程的基本理论、求解方法以及它们在实际问题中的应用案例。 4. **概率统计模型**:概率统计模型在处理随机现象时发挥着重要作用。这部分内容包括了概率论基础知识、统计推断方法以及常见...
该问题在1971年被库克证明为NP完全问题,这意味着如果能找到一个多项式时间内解决SAT问题的方法,则P=NP问题将得到解答。 本文介绍了一种新型的SAT求解算法——基于寻找可满足2-SAT子问题的算法(Finding ...
2016年江苏高考数学二轮专题复习解答题强化练习就着重对三角函数和立体几何这两个高考数学的核心考点进行深化训练。考生通过这类专项训练,能够巩固基础知识,提升解题技巧,为决胜高考数学打下坚实基础。 在三角...
在人工智能的发展历程中,知识表示方法一直是一个重要的研究领域,它涉及到如何让机器理解世界和解决问题。在众多的知识表示方法中,问题归约法(Problem Reduction)是特别值得关注的一种技术。通过问题归约法,...
理解这两个数列的基本性质对于求解问题至关重要。等差数列的公差是相邻两项的差,而等比数列的公比是相邻两项的比值。在实际操作中,我们需要识别出题目给出的数列结构,并应用相应的数学性质进行分析计算。 二次...
在数学学习过程中,应用题一直是学生学习的一个重点和难点。应用题要求学生不仅要有扎实的数学运算能力,还需要有较强的逻辑思维能力和问题分析能力。五年级的学生在数学学习上已经开始接触更为复杂的概念,如分数、...
在物理学领域,机械波的研究一直是一个基础而又复杂的议题。机械波作为能量通过介质传播的一种形式,其原理广泛应用于工程技术、声学、地震学等多个领域。而“机械波多解问题2.pptx”这份资料,便是一次深入探讨机械...
- 解释递归算法如何分解问题并逐步求解。 4. **第5章:概率分析与随机化算法** - **知识点**: - 随机变量与期望值的基本概念。 - 如何利用概率工具分析算法性能。 - **习题解答解析**: - 探讨随机化算法的...
行程问题一直是考试中的热点题型,因为这类问题不仅考察学生对于基本数学概念的理解,还考察他们分析问题和解决问题的能力。当题目条件复杂,只给出时间而未提供速度或路程时,巧妙设定单位“1”就成为解决此类问题...
题目中若出现两个函数关于某条直线对称,考生可以通过这一性质求解函数的最值问题。这种技巧的运用不仅能简化问题的求解,还能提高解题的速度和准确性。 最后,三角函数的综合应用考察了学生对三角函数知识的熟练...
其次,解直角三角形与不等式结合的应用题,这类题目强调的是在实际问题中如何应用三角函数,并结合不等式来求解问题。在测量河流宽度的问题中,学生不仅要运用正切函数计算河宽,还要考虑到实际操作中各种可能的限制...
在高中数学的学习过程中,参数不等式及其恒成立问题一直是一个重要的知识点,尤其在高考数学中占有重要的地位。这些知识模块的掌握程度直接关系到学生解决复杂数学问题的能力,因此,一份高质量的单元测试卷对于检验...
总之,济宁市2013年中考数学专项复习专题七关于动点问题的内容,不仅仅是对一个具体问题的分析和解答,更重要的是通过这个问题的讲解,帮助学生形成一种分析和解决问题的思维模式。学生在复习过程中,应注重对几何...