我有一个类似下面的列表。我想知道如何在Java中创建具有这种类型的列表的二叉树。有没有人能提供一些Java的二叉树插入代码来处理这种类型的列表?
例如:
List 1: AND AND AND G M S T
二叉树将是:
AND
AND AND
G M S T
对于这个列表:
List 2: AND AND G M S
二叉树将是:
AND
AND S
G M
我尝试了以下插入方法:
public void insert(R
因此,我试图在java中的二叉树(而不是搜索树)中放置一个元素。我到处寻找,我所能看到的就是将它插入到二叉树中的算法(我想要一个简单的二叉树)。给定父节点的值,我需要设置左和右子节点。我的计划如下:
public void addLeft(E elem, E parentVal) {
//Find node with parentVal
//Create node with element elem (call it newNode)
//Set the left child of the node with parentVal as newNode
}
最后两个步骤相当简单,所以我真正的问题
我有一块代码,试图做一个简单的二叉树'20个问题游戏‘。
这是一个第一年的项目,用一个非常简单的yes-no二叉树实现。
错误是:
java.io.NotSerializableException: Node
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at Game.main(Game.java:41)
我对这个错误进行了广泛的搜索,但是很难在一些在线论坛中找到不是大量错误
我正在使用java构建期权估值(二叉树)。我的二叉树有1000步的正常顺序代码,只需要0.1秒。但是,当我尝试使用并行来运行它时,大约需要65秒。任何建议和意见都将不胜感激..
Binomial Thread is my class which does the calultion
ThreadPoolExecutor threadExecutor = new ThreadPoolExecutor(10000, 10000, 500,
TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(10),
我正在使用Java Generics编写代码。我想一般地定义一个二叉树类,它可以接受任何类,并保证该类具有比较器方法比较(T o1,T o2),以查看是否需要跟随右或左子树插入到二叉树中。
public class treeDB <T implements Comparator> {
//define my binary tree methods
}
这是我对如何强制实现比较器方法的最好估计,但是编译会抛出一个错误,我不知道它想要什么。
我一直在尝试从Node切换到Java,我想知道的一件事是如何以与node显示它的格式相似的格式打印一个对象,比如二叉树。例如,我的二叉树初始化代码如下:
public class BinaryTree {
int data;
BinaryTree left, right;
public static void main(String[] args) {
BinaryTree tree = new BinaryTree(1);
tree= new BinaryTree(1);
tree.left = new BinaryT
我试图通过使用分隔符分隔不同的字段,将文本文件读入二叉树。当我试图将它读入二叉树时,我会得到数组超出界限的erropackage医院;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;`
public class main {
public static void main(String args[]) throws IOException
{
BufferedReader in = new BufferedReader(new Fil
你好,我在校园里试图编译一个简单的二叉树程序..我们的校园只有shell,而我使用的是Linux over eclipse..
我在当前目录bintree.java和treetest.java中有两个类文件
javac bintree.java treetest.java
这段代码创建了多个类,但是我的下一步是什么呢?我到处都找过了,没有多少关于java Linux shell的信息。谢谢
我在Java中找到了用于将二叉树压平成数组的。我很难理解它是如何工作的。
以下是代码:
private static int FlattenTreeIntoArray(Node tree, int[] array, int i)
{
if (tree == null) return i;
// Flatten left subtree
i = FlattenTreeIntoArray(tree.Left, array, i);
// Get data from the current node
array[i] = tree.Data;
// F
我知道这个问题本身可能是微不足道的,但我正在尝试从level order输入生成一个二叉树,然后遍历它,以表示该树保存在数据结构中。假设输入是- a,s,e,r,t,*,w,它将生成一个二叉树,其表示如下:
a
/ \
s e
/\ /\
r t * w
有没有办法实现这一点,就像从树输入生成二叉树一样。如果有人以前遇到过这种问题,请用JAVA分享一些实现,比如使用队列。
我玩了一点二叉树,构建了一个菜单,当我点击创建树时,用户可以选择是构建二叉树,向他构建的二叉树插入一个值,还是删除它。树被创建,然后菜单再次出现,现在我想在这棵树中放一个数字,但那个变量没有设置在案例中,每个案例应该设置它的变量吗?或者您可以使用全局变量?
这是我的menu类的代码。
import java.util.Comparator;
import java.util.Scanner;
public class TreeMenu {
public static void main(String[] args) {
while(true ){
Sy
我试图从文件中读取数字,然后将这些数字放入二叉树中。我尝试将数字文件读入一个数组,然后使用该数组将我的数字传输到我的二叉树。我目前有一个treeNode类(下面)和一个树类(也在下面)
package com.company;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;
public class treeNode
{
public i
我正在尝试使用递归函数使用二叉树(不,它不是二叉树,只是二叉树)来创建一种搜索方法。如果数据在二叉树上,我希望它返回节点,如果不在二叉树上,我希望它返回一个NULL值。我已经实现了搜索功能,它正在完美地完成它的工作。但问题是,该函数似乎不会返回节点。
下面是二叉树的struct:
struct data
{
int number;
struct data *left, *right;
}*root = NULL;
这就是我所说的搜索功能:
data* search(struct data *node, int key)
{
if(node == NULL)
我正在为树数据结构编写一个项目--具体来说,它将提供的主要功能是以不同的方式(在JFrame画布屏幕上的不同布局)显示给定的树。为了简单起见,我假设需要打印的树永远是二叉树。
计算布局的算法需要我对树进行无序/预/后遍历。在我的项目中,我将编写类似以下内容的方法:
class MyBinaryTreePrinterProject{
public void inOrderTraversal(Object root){
// do inorder traversal
}
public void preOrderTraversal(Object root){
// do preo
我正在使用递归从二进制搜索树创建一个双链接列表,当BST已经被填充时,它非常好地工作,即>=2节点。但是,我尝试为动态填充的BST运行它,当我将子节点插入到BST中的根节点时,它就会给我一个StackOverFlowError。下面是我编写的代码(用Java编写的)
public class BSTtoDLL {
/* Binary Search Tree to Doubly Linked List conversion*/
// head --> Pointer to head node of created doubly linked list
stati
我试图想出一个从二叉树/二叉树中删除重复项的算法。到目前为止我能想到的是
将树的顺序遍历存储在数组中。
如果树没有排序,则对数组进行排序。
从数组中删除重复项并重建二叉树。
我们是否也需要存储树的预顺序遍历来重建树?
这使得复杂性出现在O(n log n )时间和O(n)空间上。我们能做得更好吗?伪代码/代码示例将不胜感激。
编辑1:假设二叉树的结构由以下对象提供
public class Node
{
int data;
Node right;
Node left;
// getters and setters for the left and right node
是不使用队列的二叉树视图的c++实现。当我试图将它转换为Java时,它是不工作的。以下是我的Java代码:
(我认为这很可能是因为我没有正确理解算法和处理maxLevel指针/引用)
public static void rightView(TreeNode tNode){
int maxLevel = 0;
rViewUtil(tNode, 1,maxLevel);
}
public static void rViewUtil(TreeNode tNode, int level, int maxLevel){
if(tNode==null)
retu
data BTree a = Nil | Node a (BTree a) (BTree a) deriving Show
我学习了两个二进制搜索树。一个是完美的,另一个是完整的。
二叉树是完美二叉树,其中所有内部节点都有两个子节点,并且所有叶子都在同一层上。
一棵二叉树是完全二叉树,如果除了最后一层之外的所有级别都被完全填满,并且最后一层尽可能地保留所有的关键字
检查二叉树是否完美的代码非常简单
isPerfect :: BTree a -> Bool
isPerfect Nil = True
isPerfect (Node x Nil Nil) = True
isPerfect (N