相关疑难解决方法(0)

理解递归

我在学校理解递归方面遇到了很大麻烦.每当教授谈论它时,我似乎都能得到它,但是只要我自己尝试它就会彻底打动我的大脑.

我整晚都试图解决河内塔楼,并彻底打动了我的思绪.我的教科书在递归时只有大约30页,所以它不太有用.有谁知道可以帮助澄清这个主题的书籍或资源?

algorithm recursion tail-recursion

215
推荐指数
11
解决办法
8万
查看次数

深度与树的高度.刷新基本面

我正在复习算法和数据结构.

我对树的深度高度的概念感到困惑.在许多情况下,特别是在关注面试评估的网站上,在我看来,这些术语可以互换使用.

在我看来,基本的文学将它们定义为适用于节点不会在一棵树上.

所以根(它是一个节点)的深度是0.根(或任何子节点)的高度是其子节点的最大高度.

但是当你在树上应用这些术语,即找到树的最大深度时,似乎这些术语现在是"无意义的"并且可以互换使用,即找到最大深度只计算最大高度.

例如,在这篇文章中检查树是否平衡,答案集中在树的高度,而平衡的定义可以在树的深度上

我的理解是正确的还是我搞砸了这些基本原理?

algorithm tree computer-science data-structures

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

该树是否由tsearch()平衡树创建?

我正在使用tsearch()创建一个二进制文件。是否自动创建了平衡的树。如何验证树是平衡的还是不平衡的。

c binary-tree

5
推荐指数
1
解决办法
522
查看次数

二进制搜索树是否平衡?

这已经在这里讨论,但我在下面有一个实现(从未在线程中讨论),

public boolean isBalanced(BSTNode node) {
    if(maxHeight() > (int)(Math.log(size())/Math.log(2)) + 1) 
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)

其中maxHeight()返回树的最大高度.基本上我正在检查maxHeight> log(n),其中n是树中元素的数量.这是正确的解决方案吗?

java algorithm tree binary-tree data-structures

3
推荐指数
1
解决办法
5063
查看次数