标签: binary-tree

C的通用数据结构库?

你们使用哪些库来实现通用数据结构,如链表,二叉树等?

什么是最常见,最有效的图书馆?你能说出一些名字吗?

binary-tree linked-list

2
推荐指数
1
解决办法
2220
查看次数

如何计算二叉树中正确子项的数量?

如何计算二叉树中正确子项的数量?

这意味着我只希望孩子被标记为正确.

防爆.

(Left | Right)

      F(Root)    
  G   |   H     
T   U |  I  J  
Run Code Online (Sandbox Code Playgroud)

合适的孩子是U,H和J.

找到这些算法的算法是什么?

algorithm binary-tree data-structures

2
推荐指数
1
解决办法
7171
查看次数

二叉树到二叉搜索树(BST)

如何使用O(1)额外空间将二叉树转换为二叉搜索树?

big-o binary-tree binary-search-tree data-structures

2
推荐指数
1
解决办法
1530
查看次数

从二进制搜索树递归构建数组时的Java StackOverflowError

我试图通过首先构建一个数组(inorder)来平衡BST,然后从我的数组重建整个树.

我有:

 public void toArray(E[] a) {
  toArray(root, a, 0);
 }

 /*
  * Adds all elements from the tree rooted at n in inorder to the array a
  * starting at a[index].
  * Returns the index of the last inserted element + 1 (the first empty
  * position in a).
  */
 private int toArray(BinaryNode<E> node, E[] a, int index) {
  if (node.left != null) {
   index = toArray(node, a, index);
  }

  a[index] = node.element;
  index++;

  if (node.right != null) { …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow rebuild binary-tree

2
推荐指数
1
解决办法
1304
查看次数

从代数表达式创建二叉树

我必须用Java创建一个算术求值器.为此,我必须在二叉树中解析一个algebric表达式,然后计算并返回结果.因此,对于第一步,我如何解析二叉树中的表达式?我知道这个理论,但我的问题是如何用Java做到这一点.我阅读了以下帖子 创建递归二叉树

但我错过了基本的技巧或方法.我知道如何创建一个节点(我有一个类,其方法有returnNodeValue,isLeaf,isDoubleNode,isSingleNode等),但我想我需要一个方法在二叉树中插入一个节点来实现我想要的东西.有任何想法吗?

java tree parsing binary-tree

2
推荐指数
2
解决办法
2万
查看次数

计算Prolog上二叉树中的节点数量?

我有一些代码

tree1(tree(1,
            tree(2,
                tree(3,nil,nil),
                tree(4,nil,nil)),
            tree(5,
                tree(6,nil,nil),
                tree(7,nil,nil))
        )
    ).
rbt_count_nodes(e,0):-!.
rbt_count_nodes(t(_,L,R),N):-
    rbt_count_nodes(L,NL),
    rbt_count_nodes(R,NR),
    N=NL+NR+1.

?-tree1(T),rbt_count_nodes(T,N),write(N).
Run Code Online (Sandbox Code Playgroud)

但目标总是回归号码为什么?

binary-tree prolog

2
推荐指数
1
解决办法
2855
查看次数

从非平衡二叉树中选择一个随机节点

我的一个朋友有以下面试问题,我们都不确定正确的答案是什么.有没有人知道如何处理这个问题?

给定不平衡二叉树,描述一种算法以随机选择节点,使得每个节点具有相同的被选择概率.

algorithm recursion binary-tree

2
推荐指数
1
解决办法
1601
查看次数

java Collections.binarySearch()返回-2

我有一个包含学生信息的文本文件.我使用实现comparator接口的比较器类对这些信息进行排序.这在调用时排序很好Collection.Sort();

然后我comparatorbinarySearch()方法中使用.我有一个int索引,它返回二进制搜索的索引.调试后似乎没有binarySearch()正确排序数据,因为我得到的索引为0表示501是正确的,索引为1表示503表示不正确,索引表示为-2表示502.是binarySearch不是正确使用比较器因此,不会对数据进行适当的排序,因为它以原始形式返回数据.

 =================================================
    First Name: Mark
    Last Name: Evans
    Registration: 501

    Subject: Maths
    Assignment: 1
    Homewok Mark: 70
    Exam Mark: 80

    Assignment: 2
    Homewok Mark: 70
    Exam Mark: 40

    Subject: English
    Assignment: 1
    Homewok Mark: 40
    Exam Mark: 50

    Assignment: 2
    Homewok Mark: 60
    Exam Mark: 70

    Subject: Science
    Assignment: 1
    Homewok Mark: 50
    Exam Mark: 60

    Assignment: 2
    Homewok Mark: 80
    Exam Mark: 45

    Assignment: 3
    Homewok Mark: …
Run Code Online (Sandbox Code Playgroud)

java sorting collections binary-tree

2
推荐指数
1
解决办法
3146
查看次数

生成所有可能的树

给定以下数据类型定义:

data FormTree = Empty | Node FormTree FormTree deriving Show
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数,它生成一个无限列表,其中包含按长度排序的所有可能的树,例如节点的数量.

下面的代码几乎可以满足我的需要,但它只是通过每次插入额外的节点来降低右侧的树,但我需要它在两边之间交替.

allPossibleTrees :: [FormTree]
allPossibleTrees = Empty : [Node x y | x <- recursive, y <- recursive]
    where recursive = allPossibleTrees
Run Code Online (Sandbox Code Playgroud)

执行

take 5 allPossibleTrees
Run Code Online (Sandbox Code Playgroud)

得到:

[Empty,Node Empty Empty,Node Empty (Node Empty Empty),Node Empty (Node Empty (Nodes Empty Empty)),Node Empty (Node Empty (Node Empty (Node Empty Empty)))]
Run Code Online (Sandbox Code Playgroud)

但它应该是这样的:

[Empty,Node Empty Empty,Node (Node Empty Empty) Empty,Node Empty (Node Empty Empty),Node (Node Empty Empty) (Node Empty Empty)]
Run Code Online (Sandbox Code Playgroud)

binary-tree haskell list-comprehension catalan

2
推荐指数
1
解决办法
1217
查看次数

如何使这个搜索功能非递归?

我试图将这个递归函数转换为非递归函数.这是来自二叉搜索树的搜索函数.我知道这是很自然,使之递归的,但学习的目的,我想使其非递归.我怎么能这样做?提前致谢!

    bool Search(BstNode* root, string data) {

    if (root == NULL) return false;
    else if (root->data == data) return true;
    else if (data <= root->data) return Search(root->left, data);
    else return Search(root->right, data);

}
Run Code Online (Sandbox Code Playgroud)

c++ recursion binary-tree non-recursive binary-search-tree

2
推荐指数
1
解决办法
283
查看次数