用Java实现棵普通的叉树,给定 叉树的两个节点 nodeA、nodeB,找到nodeA和nodeB的最短路径,并输出。

作者&投稿:镡曹 (若有异议请与网页底部的电邮联系)
如何根据nodea的返回值来决定nodeb的任务~

node.js中可是考虑使用agenda模块来完成定时任务。 ------------ 官网:https://github.com/rschmukler/agenda --------------------- var Agenda = require('agenda'); var connectionOpts={db: { address: dbUrl}}; var agenda = new Agenda

Node[] a;Node[] a = new Node[10];-------------------------------------------------int[] arr;int[] arr=new int[10];-------------------------------------------------Person[] p;Person[] p=new Student[10]; 这里包含有继承的关系------------------------------------------------能看出来区别吗?这个三种意思完全一样...Node[] a;声明了a变量,类型是Node节点类型数组;Node[] a=new Node[10];声明a变量为Node类型数组,并定义这个数组长度为10,可以存放10个Node类型的元素!

public class Path {
  public static List<Node> minPath(Node root, Node a, Node b) {
    List<Node> result = new ArrayList<Node>();
    if (root == null || a == null || b == null) {
      return result;
    }

    List<Node> aPath = path(root, a);
    List<Node> bPath = path(root, b);
    int lastSameNodeIndex = getLastSameNodeIndex(aPath, bPath);
    if (lastSameNodeIndex == -1) {
      return result;
    }
    for (int i = aPath.size() - 1; i >= lastSameNodeIndex; i--) {
      result.add(aPath.get(i));
    }
    for (int i = lastSameNodeIndex + 1; i < bPath.size(); i++) {
      result.add(bPath.get(i));
    }
    return result;
  }

  private static int getLastSameNodeIndex(List<Node> aPath, List<Node> bPath) {
    int i = -1;
    while (i + 1 < aPath.size() && i + 1 < bPath.size()
        && aPath.get(i + 1) == bPath.get(i + 1)) {
      i++;
    }
    return i;
  }

  private static List<Node> path(Node root, Node n) {
    List<Node> result = new ArrayList<Node>();
    result.add(root);
    if (root == n) {
      return result;
    }
    if (root.left != null) {
      List<Node> left = path(root.left, n);
      if (left.size() > 0) {
        result.addAll(left);
        return result;
      }
    }
    if (root.right != null) {
      List<Node> right = path(root.right, n);
      if (right.size() > 0) {
        result.addAll(right);
        return result;
      }
    }
    result.clear();
    return result;
  }
}
public class Node {

  public char value;
  public Node left;
  public Node right;

  public Node(char value) {
    this.value = value;
  }
}


http://www.cnblogs.com/hapjin/p/5435724.html

。。。。。。。。。。。。

问题:按层序从root节点开始给一个完全二叉树标号,对任意两个节点,求其最短路径。

描述:二叉树的最短路径问题可以转化为求两个节点最小公共父节点问题,而两节点到最小公共父节点的路径即为所求。


求java中文分类实现过程代码
对一个句子进行全切分的结果,即所以可能的组合,可以形成一棵解空间树 于是,可用回溯法搜索最优解若将所有的全切分组合先搜索出来,然后再根据2-gram选择最佳,显然会很浪费时间,因为过程中可能存在很多的重复搜索,而回溯搜索的时间复杂度为指数时间所以,在搜索过程中要结合 剪枝,避免无效搜索,可很大提高效率采用树的...

java语言可以开发什么?
Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身(后来发现Oak已是Sun公司另一个语言的注册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字)。 Gosling 在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行的软硬件环境。他要建立一个系统...

java是什么意思?
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联...

Java多线程程序设计详细解析
以上我们对 Java 中实现线程阻塞的各种方法作了一番分析,我们重点分析了 wait() 和 notify()方法,因为它们的功能最强大,使用也最灵活,但是这也导致了它们的效率较低,较容易出错。实际使用中我们应该灵活使用各种方法,以便更好地达到我们的目的。七、守护线程守护线程是一类特殊的线程,它和普通线程的区别在于它并不...

求数据结构(JAVA版)实验树和二叉树题目答案
\/ param args 之前在大学的时候写的一个二叉树算法,运行应该没有问题,就看适不适合你的项目了 *\/ public static void main(String[] args) { BiTree e = new BiTree(5);BiTree g = new BiTree(7);BiTree h = new BiTree(8);BiTree l = new BiTree(12);BiTree m = new Bi...

大家好,我想学习JAVA编程!大家能不能给我提一点建议.
我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java 是一种面向对象语言。Java 语言类似于 C++ 语言,所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java程序需要编译。实际上有两种...

设计一个非递归算法,从一棵二叉树中查找出所有节点的最大值并返回...
如最上面的节点是叶子节点,则弹栈,否则继续遍历其子节点,并如3步所说,依访问顺序压栈 对于所有子节点都已遍历(压栈)的父节点,做标记,则当弹栈后,栈的最上面是一个带有标记的非叶子节点,亦将其弹出栈 循环3-5步,直到栈空为止 深度优先搜索,也可以用类似的方式实现 ...

Java是干什么用的 说的明白点啊 谢谢啦~
[编辑本段]Java的特点 1.平台无关性 平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用...在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根...

急需用JAVA语言做的简单小游戏的程序设计
面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。 五. Java与Internet 我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。 Java并不是为 Internet,WWW而设计的,它也可以用来编写...

java开发需要学习什么
不过作为一名普通J2EE应用程序的开发者来说,我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数,哪天需要用到了知道跑哪里去找到资料就行了。以我个人的观点,下面这些技术是一般J2EE应用开发人员所必须熟练掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。还有JAXP等...

容县13342347608: 用Java实现棵普通的叉树,给定 叉树的两个节点 nodeA、nodeB,找到nodeA和nodeB的最短路径,并输出. -
巧志速溶: public class Path {public static ListminPath(Node root, Node a, Node b) { List result = new ArrayList(); if (root == null || a == null || b == null) { return result; } List aPath = path(root, a); List bPath = path(root, b); int lastSameNodeIndex = ...

容县13342347608: 说明生活中遇到的二叉树,用java实现二叉树. (求源码,要求简练、易懂.非常满意会额外加分) -
巧志速溶: import java.util.ArrayList;// 树的一个节点 class TreeNode { Object _value = null; // 他的值 TreeNode _parent = null; // 他的父节点,根节点没有PARENT ArrayList _childList = new ArrayList(); // 他的孩子节点 public TreeNode( Object value, ...

容县13342347608: ①用Java代码模拟实现一个二叉树结构②创建该二叉树③遍历该二叉树. -
巧志速溶: class Node { private int value; private Node left; private Node right; // 存储节点 public void store(int value) { if (this.value > value) { if (left == null) { left = new Node(); left.value = value; } else { left.store(value); } } else { if (right == null) { right = new Node()...

容县13342347608: 如何用java实现二叉树的构建 -
巧志速溶: 树的构建方法 注意:1. 父节点数组下标从0到 n/2 -1 ,但是遍历时要小于n/2-1,因为最后一个父节点可能没有右孩子,当n/2-1为奇数时才有右孩子,为偶数时只有左孩子.2. 结点左孩子下标为2n+1,右孩子下标为2n+2.

容县13342347608: java怎么实现二叉树 -
巧志速溶: 这是一段代码:就是java树 private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); setSize(new Dimension(450, 350)); setTitle("Welcome to JTree"); // Creating Root node ...

容县13342347608: 用java实现二叉树 -
巧志速溶: 我有很多个(假设10万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在某 个数据,(我想说出二叉树的好处,该怎么说呢?那就是说别人的缺点),假如存在数组中,那么,碰巧要找的数字位于99999那个地方,那查找的速...

容县13342347608: 用JAVA写二叉树 -
巧志速溶: /** * [Tree2.java] Create on 2008-10-20 下午03:03:24 * Copyright (c) 2008 by iTrusChina. */ /** * @author WangXuanmin * @version 0.10 */ public class Tree2Bef { private StringBuffer bef=new StringBuffer(); //传入中序遍历和后序遍历,返回前...

容县13342347608: 用java怎么构造一个二叉树呢? -
巧志速溶: 二叉树的相关操作,包括创建,中序、先序、后序(递归和非递归),其中重点的是java在先序创建二叉树和后序非递归遍历的的实现.package com.algorithm.tree; import java.io.File; import java.io.FileNotFoundException; import java.util.Queue; ...

容县13342347608: 用java建立二叉树 -
巧志速溶: 数据结构的教材里有, 建立两个类就应该可以了.一个是树的节点,一个是树,这个是我以前编写的宽度优先遍历的树的构建和遍历,希望对你有帮助.文件名是:Tree.javaimport java.util.ArrayList;// 树的一个节点 class TreeNode { Object...

容县13342347608: 如何用java画一棵二叉树 -
巧志速溶: 当画一个节点的时候样传入的是坐标X,Y和父节点的就可以了 MiddleHead(TreeNode node, int x1, int y1, int x2, int y2, double alpha) node:表示当前的节点,x1, y1 当前节点的父节点的坐标(父节点不存在的时候可以设为负数,然后在后面判断)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网