我在读Binomial Heap in 。
insTree函数的实现让我非常困惑。这是一组代码
datatype Tree = Node of int * Elem.T * Tree list
fun link (t1 as Node (r, x1, c1), t2 as Node (_, x2, c2)) =
if Elem.leq (x1, x2) then Node (r+1, x1, t2::c1)
else Node (r+1, x2, t1::c2)
fun rank (Node (r, x, c)) = r
fun insTree (t, []) = [t]
我正在处理一个计算几何问题,它使用来自一个TriangularMeshQuadtree库的C#,它的一些构造函数如下所示(从元数据,因此我看不到实现的细节):
构造函数1:
// Summary:
// Constructor to use if you are going to store the objects in x/y space, and there
// is a smallest node size because you don't want the nodes to be smaller than a
// group
有人能告诉我这是怎么回事吗。它是一个拥有自身扩展泛型的类吗?这到底是什么意思?
public abstract class AbstractStructureBuilder<T extends AbstractStructureBuilder> implements IStructureBuilder
{
//abstract and concrete methods in here
}
考试中的问题:
设T是一棵AVL树,x,y是树中的两片叶子(x != y)。depth(x) - depth(y)的最大值是多少?
A. 0
B. 1
C. 2
D. None of the above
正确(?)答案是D,有人能解释为什么它不是B,因为AVL属性之一是每个节点的height(a.left) - height(a.right) <= 1 a
我需要做一些与这个问题中描述的任务类似的事情:
这里有一个非常有用的答案,但我不完全理解伪代码,所以我想知道是否有人可以帮助我描述一下发生了什么。
k = 0 // Initialize
input = ... get preorder traversal vector from user ... // Get input
Reconstruct(T) // Reconstruct method with tree input
if input[k] == N // If element of input is N
T = new node with label N // Mak
我在上找到了一个树的实现。不幸的是,我不知道如何使用它。另外,我对它进行了更改,因为LinkedList没有Add方法:
delegate void TreeVisitor<T>(T nodeData);
class NTree<T>
{
T data;
List<NTree<T>> children;
public NTree(T data)
{
this.data = data;
children = new List<NTree<T>>();
按照此处列出的建议:实现了以下查询:
SELECT new x.y.z.TreeInfo(t, count(l.id))
FROM Tree t LEFT JOIN t.branches b LEFT JOIN b.leaves l
GROUP BY t.id
目标是在one查询中获取整个树对象和数据库中的叶数。现在,它获取第一个查询中的计数和树it,然后发出一个额外的查询来加载每个树。有没有任何方法告诉它在第一个查询中获取整个树对象?JPA是这份工作的错误工具吗?
我想要做的等价SQL是:
select *, (select count(*)
from leaf l j
请批评我的代码。我注意到我的最后一个断言失败,值为277。我期望该值为255 (1/2 500+10)。这是一个有效的测试,还是我做错了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace RedBlackTree
{
public enum NodeColor
{
Red,
Black
我正在尝试在Java的根部拆分一个二进制搜索树。我不知道该怎么做。最让我困惑的是递归调用。下面是我得到的伪代码。当x大于T(待分割的树)时,我是否要调用split(R.key,R.right,L,R)?我在正确的轨道上吗?这是项目中唯一让我感到困惑的函数。提前谢谢。
void split( int x, bst T, bst L, bst R) /* assuming x is not in T */
{
if T is null, make L and R null
else if x < T.key
set R = T /* all keys at t
我已经写了一个平衡BST的代码,但我不能在BST中添加超过5个元素!我们有三种情况,我们从不平衡的节点转到我们想要插入它的节点,当我添加5个节点时,这段代码工作得很好。但是如果我添加更多,它会给我overStack。这是代码
#include"iostream"
using namespace std;
struct node{
int x;
node*left;
node*right;
};
int max(int x,int y){
if(x>y)return x;return y;
}
int depth(node*T){ // re
我有一个程序,它接受一个邻接矩阵作为输入,然后计算相应的图是否是树。我想要修改它,这样它就可以确定图形是否是一个二进制树,但是我真的不能用它来包装我的头脑。我该怎么办?
这是原始代码:
#include<stdio.h>
#include<stdlib.h>
int A[20][20]; // Our two-dimensional array.
int visited[20];
int v = 0;
int count = 0;
int n;
int seq[20];
int s = 0;
int connected = 1;
int acyclic = 1;
/
完全树是一棵树,每个层次都被完全填充,an 几乎完全树是一棵树,如果最后一层没有完全填充,那么所有节点都尽可能地保持在最左边。我的困惑出现在以下二叉树示例中:
O
/ \
O O
/ \ / \
O O O O
/ \
O O
根据定义,它应该是一个不完全的二叉树,但它是一个完整的二叉树。这怎么是一个完整的二叉树,为什么它不是一个不完整的二叉树?
因此,我的界面显示必须注意以下条件:
/**
* Remove the data element from the tree.
*
* In the case that a node you want to remove has two children
* replace it with the successor. If the data is null throw
* IllegalArgumentException.
*
* @param data The data you want to remove.
*
* @return The
我使用以下方法(使用宽度优先遍历算法)以连续顺序将项添加到二叉树中。
例如,如果我有
A
/ \
B C
/
D
我希望下一个补充是:
A
/ \
B C
/ \
D E
我的问题在于我不知道如何正确地返回这个值。我知道当我们遇到第一个空节点时,我们会在那里插入值,但是我们要把它插入到什么中呢?如果我们将它插入到从队列中获得的二叉树中,那就是根的子树(或者我们试图添加的树),所以返回的不是完整的树。
下面是我的代码:
public static <T> BinaryTree<T> addToTree(BinaryTree<T>
我一直试图遵循算法提供的,以求k‘最小的值在二叉树。但是,我不清楚如何搜索正确的子树(这是我的代码中的错误吗?)
例如,对于以下树: 9、3、6、5、8、13、14。
9
/ \
/ \
3 13
\ \
6 14
/ \
5 8
我得到的输出是:
k = 0, returned 3
k = 1, returned 6 // should return 5
k = 2, returned -1 // should return 6
k = 3, returned -1 // should return 8
k =
我在课堂上学习ML,我遇到了一个家庭作业问题,我被困住了。我昨天花了一整天的时间在寻找,但没有取得什么进展,我们没有在课堂上谈论这个问题,所以我希望你们能帮助我。
我们得到:
datatype which = STRING of string | INT of int
第1部分:我们需要为一个二叉树创建另一个名为whichTree的数据类型,它包含which类型的值,其中数据仅位于树的叶子处。
第2部分.我们需要创建一个whichSearch函数,根据int是否在树中返回whichTree -> int -> bool类型为true或false。
到目前为止,这就是我所拥有的:
d
BLACK_PATH(T,x)
if x==NIL
then return TRUE
if COLOR(x)==BLACK
then return BLACK_PATH(T,left(x)) || BLACK_PATH(T,right(x))
return FALSE
练习要求分析这个过程的复杂性。我相信重演如下
T(n)<=2T(2n/3)+O(1)
使用递归树,我得到T(n)=O(n)。这是正确的吗?
我需要在这个实现中编写后继和前任,但是我不知道如何在没有parent.May的情况下做到这一点--您建议如何最好地实现这些方法?这是我的TreeNode课
public class TreeNodee<K extends Comparable<K>> {
public K data;
int counter;
public TreeNodee<K> left, right;
public int height;
public int bf;
TreeNodee parent;
public Tr