我试图从文件中读取数字,然后将这些数字放入二叉树中。我尝试将数字文件读入一个数组,然后使用该数组将我的数字传输到我的二叉树。我目前有一个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
以下是我在Java中定义二叉树的代码
// Class definition for binary tree
// Class for storing a single node of a binary tree of ints
// Cannot be set to be private because this should be accessed by the public class method
public class IntTreeNode {
public int data;
public IntTreeNode left;
public IntTr
第3章定义了以下递归类型来表示二叉树:
data Tree a = Node a (Tree a) (Tree a)
| Empty
deriving (Show)
本练习要求我使用单个值构造函数实现相同的类型,使用“可能”类型来引用子节点:
(摘自第60页的第3章练习2)
“定义一个只有一个构造函数的树类型,就像我们的Java示例一样。使用可能类型来引用节点的子节点,而不是使用空的构造函数。”
我想出的解决方案如下:
data AltTree a = AltNode a (Maybe (AltTree a)) (Maybe (AltTree
在两周内,我一直在用OCaml做一些简单的程序。我注意到,当我们使用递归结构T时,我们希望在T上有信息I,然后根据信息I,我们有两种类型的递归函数。
为了简单起见,我们假设T是一棵二叉树。因此,我将使用以下类型:
type 'a tree = Empty | 'a * 'a tree * 'a tree
现在,假设可以在二叉树上从左到右计算信息I。当我说从左到右时,这意味着信息I可以从根计算到叶,而不需要向后。
更清楚的是,假设我们想要的信息I只是“二叉树的节点数”。这个信息的好处是,当我们到达所有的叶子时,我们就得到了I,所以我们从根开始到右边,递归地扩展到左
在这里,我试着练习制作二叉树,这样我就可以用它们做不同的操作。
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String[] args) {
}
}
//Building Binary Trees
class bTree {
static class Node { //remember to initilize a root
String value;
Node left, right;
Node(String value, Nod
我有一个类似下面的列表。我想知道如何在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
我使用模板创建了一个二叉树。我输入了所有节点的整数值,并希望在二叉树中找到最大元素。
以下是实现:
public class BinaryTreeNode<T> {
private T data;
BinaryTreeNode right;
BinaryTreeNode left;
public BinaryTreeNode(T data) {
this.data = data;
this.right = null;
this.left = null;
}
public T getD
我创建了描述二叉树的新类型
data BinTree a = Null | Num a (BinTree a) (BinTree a)
deriving (Show)
并创建了以下函数:
treehandle :: BinTree a -> Bool
treehandle a = True
检查至少输入值。
当输入值为Null时,程序输出结果成功,但不能输入二叉树。我试图这样做:
treehandle (5 (Null) (Null))
但获得:
<interactive>:66:13:
No instance for (Num (BinTree a1 -> BinTr
我很难理解如何正确地实现二叉树的monad (>>=)。我有以下二叉树:
data BinTree a = Leaf a | Node a (BinTree a) (BinTree a)
deriving (Eq, Ord, Show, Read)
下面是我的monad的(>>=)运算符:
Node x l r >>= f = Node (f x) (l >>= f) (r >>= f)
__________^
我一直收到这个错误:
Couldn't match type `b
我试图通过使用分隔符分隔不同的字段,将文本文件读入二叉树。当我试图将它读入二叉树时,我会得到数组超出界限的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
我正在尝试编写与二叉树相关的代码。为此,我创建了一个名为"Node“的泛型类,并使用了另一个名为"Tree”的泛型类。
Node.java
public class Node<T>{
private T element;
private Node<T> leftObj;
private Node<T> rightObj;
public Node(T element){
this.element=element;
this.leftObj=null;
this.rightObj
我知道这个问题本身可能是微不足道的,但我正在尝试从level order输入生成一个二叉树,然后遍历它,以表示该树保存在数据结构中。假设输入是- a,s,e,r,t,*,w,它将生成一个二叉树,其表示如下:
a
/ \
s e
/\ /\
r t * w
有没有办法实现这一点,就像从树输入生成二叉树一样。如果有人以前遇到过这种问题,请用JAVA分享一些实现,比如使用队列。
我想知道如何在Haskell中计算一般树的深度。我可以为简单的二叉树找出解决方案,但不能解决具有任意数量叶子的一般树。
这是我为二叉树编写的代码。
--depth of a binary tree.
depth :: Tree a -> Int
depth Nil = 0
depth (Node n x1 x2) = 1 + max (depth x1) (depth x2)
如何为常规树修改此设置?一般的树包含一个树列表,这就是我遇到困难的地方。
其次,我希望将树转换为列表(这样我就可以执行诸如计算和等操作)。
同样,我可以针对二叉树解决这个问题,但不能针对一般
给定是一种用来构造二叉树的类型:
type tree = Leaf of int | Node of int * tree * tree
现在假设我们希望通过类型来表示二叉树包含一个元素为零的节点,也就是说,我想表示如下形式的内容:
let rec p x = match x with
| Leaf(y) -> y = 0
| Node(y,l,r) -> y = 0 || (p l) || (p r)
type zerotree = ZeroTree of t:tree where p(t)
这意味着,每当我有一个类型为Zero