0 0

这个问题一直没有解答,求解。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个答案 按时间排序 按投票排序

0 0

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高考数学二轮专题复习解答题强化练第三周解析几何问题理

    在高考数学复习的深入阶段,解析几何问题一直是学生面临的难点之一,特别是对于江苏地区的考生而言,高考数学的解答题部分要求学生具备扎实的理论基础和灵活的解题技巧。针对江苏省2016年高考数学复习,本专题训练...

    2021年中考数学真题 几何综合压轴问题(解答题)-(解析版).docx

    在2021年中考数学的考场上,几何综合题一直是考生们需要重点突破的题型之一。这类题目不仅考察学生对几何图形性质的理解和运用,还测试学生的逻辑思维能力和解决问题的综合能力。通过对几何综合压轴问题的解答,我们...

    2020-2021四年级上册数学应用题解答问题训练经典题目 (3).doc

    虽然题目9没有给出完整的情景,但学生需要根据给出的条件,提出问题并进行解答。这类题目的解答训练有助于学生理解数学运算的本质,并能够在缺乏具体情境的情况下,灵活运用数学公式进行问题解决。 综上所述,四...

    力学求解软件

    结构力学求解器(SM Solver for Windows)是一个面向教师、学生以及工程技术人员的计算机辅助分析计算软件,其求解内容包括了二维平面结构(体系)的几何组成、静定、超静定、位移、内力、影响线、包络图、自由振动...

    五年级数学解决问题解答应用题练习试题专项专题训练带答案解析.pdf

    在小学五年级的数学教学中,应用题一直是教学中的重难点,它不仅考查学生对数学基础知识的掌握情况,更重要的是考查学生将数学知识应用于解决实际问题的能力。根据文件标题“五年级数学解决问题解答应用题练习试题...

    数学建模第三版 课后习题解答

    这一部分将详细介绍微分方程的基本理论、求解方法以及它们在实际问题中的应用案例。 4. **概率统计模型**:概率统计模型在处理随机现象时发挥着重要作用。这部分内容包括了概率论基础知识、统计推断方法以及常见...

    基于寻找2-SAT子问题的SAT算法

    该问题在1971年被库克证明为NP完全问题,这意味着如果能找到一个多项式时间内解决SAT问题的方法,则P=NP问题将得到解答。 本文介绍了一种新型的SAT求解算法——基于寻找可满足2-SAT子问题的算法(Finding ...

    江苏专用2016高考数学二轮专题复习解答题强化练第二周三角与立体几何问题理

    2016年江苏高考数学二轮专题复习解答题强化练习就着重对三角函数和立体几何这两个高考数学的核心考点进行深化训练。考生通过这类专项训练,能够巩固基础知识,提升解题技巧,为决胜高考数学打下坚实基础。 在三角...

    人工智能第2章知识表示方法2问题归约法 .ppt

    在人工智能的发展历程中,知识表示方法一直是一个重要的研究领域,它涉及到如何让机器理解世界和解决问题。在众多的知识表示方法中,问题归约法(Problem Reduction)是特别值得关注的一种技术。通过问题归约法,...

    2019全国高中数学联赛广东预赛解答(最终).pdf

    理解这两个数列的基本性质对于求解问题至关重要。等差数列的公差是相邻两项的差,而等比数列的公比是相邻两项的比值。在实际操作中,我们需要识别出题目给出的数列结构,并应用相应的数学性质进行分析计算。 二次...

    五年级数学解答应用题训练50(精编版)带答案解析.pdf

    在数学学习过程中,应用题一直是学生学习的一个重点和难点。应用题要求学生不仅要有扎实的数学运算能力,还需要有较强的逻辑思维能力和问题分析能力。五年级的学生在数学学习上已经开始接触更为复杂的概念,如分数、...

    机械波多解问题2.pptx

    在物理学领域,机械波的研究一直是一个基础而又复杂的议题。机械波作为能量通过介质传播的一种形式,其原理广泛应用于工程技术、声学、地震学等多个领域。而“机械波多解问题2.pptx”这份资料,便是一次深入探讨机械...

    算法导论习题解答(英文)

    - 解释递归算法如何分解问题并逐步求解。 4. **第5章:概率分析与随机化算法** - **知识点**: - 随机变量与期望值的基本概念。 - 如何利用概率工具分析算法性能。 - **习题解答解析**: - 探讨随机化算法的...

    初中数学数学论文巧设单位“1”解答行程难题

    行程问题一直是考试中的热点题型,因为这类问题不仅考察学生对于基本数学概念的理解,还考察他们分析问题和解决问题的能力。当题目条件复杂,只给出时间而未提供速度或路程时,巧妙设定单位“1”就成为解决此类问题...

    安徽省2020年高考数学第二轮复习 专题升级训练26 解答题专项训练三角函数及解三角形 理.doc

    题目中若出现两个函数关于某条直线对称,考生可以通过这一性质求解函数的最值问题。这种技巧的运用不仅能简化问题的求解,还能提高解题的速度和准确性。 最后,三角函数的综合应用考察了学生对三角函数知识的熟练...

    重庆市2016中考数学第二部分题型研究二解答题重难点突破题型三与解直角有关的实际应用题

    其次,解直角三角形与不等式结合的应用题,这类题目强调的是在实际问题中如何应用三角函数,并结合不等式来求解问题。在测量河流宽度的问题中,学生不仅要运用正切函数计算河宽,还要考虑到实际操作中各种可能的限制...

    2020年高考数学课时52参数不等式及其恒成立问题单元滚动精准测试卷文.doc

    在高中数学的学习过程中,参数不等式及其恒成立问题一直是一个重要的知识点,尤其在高考数学中占有重要的地位。这些知识模块的掌握程度直接关系到学生解决复杂数学问题的能力,因此,一份高质量的单元测试卷对于检验...

    山东省济宁市2013年中考数学专项复习 专题七 动点问题

    总之,济宁市2013年中考数学专项复习专题七关于动点问题的内容,不仅仅是对一个具体问题的分析和解答,更重要的是通过这个问题的讲解,帮助学生形成一种分析和解决问题的思维模式。学生在复习过程中,应注重对几何...

Global site tag (gtag.js) - Google Analytics