我在学校理解递归方面遇到了很大麻烦.每当教授谈论它时,我似乎都能得到它,但是只要我自己尝试它就会彻底打动我的大脑.
我整晚都试图解决河内塔楼,并彻底打动了我的思绪.我的教科书在递归时只有大约30页,所以它不太有用.有谁知道可以帮助澄清这个主题的书籍或资源?
我正在复习算法和数据结构.
我对树的深度与高度的概念感到困惑.在许多情况下,特别是在关注面试评估的网站上,在我看来,这些术语可以互换使用.
在我看来,基本的文学将它们定义为适用于节点并不会在一棵树上.
所以根(它是一个节点)的深度是0.根(或任何子节点)的高度是其子节点的最大高度.  
但是当你在树上应用这些术语,即找到树的最大深度时,似乎这些术语现在是"无意义的"并且可以互换使用,即找到最大深度只计算最大高度.
例如,在这篇文章中检查树是否平衡,答案集中在树的高度,而平衡的定义可以在树的深度上
我的理解是正确的还是我搞砸了这些基本原理?
我正在使用tsearch()创建一个二进制文件。是否自动创建了平衡的树。如何验证树是平衡的还是不平衡的。
这已经在这里讨论了,但我在下面有一个实现(从未在线程中讨论),
public boolean isBalanced(BSTNode node) {
    if(maxHeight() > (int)(Math.log(size())/Math.log(2)) + 1) 
        return false;
    else
        return true;
}
其中maxHeight()返回树的最大高度.基本上我正在检查maxHeight> log(n),其中n是树中元素的数量.这是正确的解决方案吗?