使用 Catalan Number 概念的 N 个节点可能有多少二叉树
How many binary trees possible with N nodes using Catalan Number concept
所以我正在理解加泰罗尼亚数字概念并尝试使用 topDown DP 方法在代码中实现它,所以递归关系是我所学的,
f(N) signifies total count of binary search trees possible by N number of nodes
f(N) = f(i-1).f(N-i)
where,
i = 1.....N (i signifies root node and traverse through all the nodes),
N is total number of nodes present in the binary tree,
f(i-1) signifies number of left subtrees possible when i is a root node,
f(N-i) signifies number of right subtrees possible when i is a root node.
有一个数学公式可以求出f(N)的值,
2NcN/(N+1)
。
并且,N 个节点可能的二叉树总数,
(factorial of N) * f(N)
我的疑问:
二叉树和二叉搜索树有什么区别?我觉得两者都定义了相同的含义,但有一个我不知道的区别所以帮助我。
What's the difference between binary trees and binary search trees?
这些树的 shape 没有区别,但是二叉搜索树对其节点具有的值施加了限制,这对于(仅)不存在二叉树:
- 节点的值不得小于其左子树中的任何值
- 节点的值不得大于其右子树中的任何值
表达这种约束的另一种方式是:
- 树中值的中序遍历必须是非递减的。
实际上这意味着当你得到:
- 具有节点
的二叉树的形状
- 树中存在的一组唯一值
...那么只有一种可能的方法可以将这些值与树的节点相关联,使其成为二叉搜索树。如果它不必是二叉 search 树,那么有!建立这种联系的方法。
结论:
给定 ,那么(第th个加泰罗尼亚数字)表示:
- 节点没有值的二叉树的数量(即二叉树的形状的数量)
- 具有不同值的二叉搜索树的数量
具有不同值的二叉树的数量是!
所以我正在理解加泰罗尼亚数字概念并尝试使用 topDown DP 方法在代码中实现它,所以递归关系是我所学的,
f(N) signifies total count of binary search trees possible by N number of nodes
f(N) = f(i-1).f(N-i)
where,
i = 1.....N (i signifies root node and traverse through all the nodes),
N is total number of nodes present in the binary tree,
f(i-1) signifies number of left subtrees possible when i is a root node,
f(N-i) signifies number of right subtrees possible when i is a root node.
有一个数学公式可以求出f(N)的值,
2NcN/(N+1)
。 并且,N 个节点可能的二叉树总数,
(factorial of N) * f(N)
我的疑问:
二叉树和二叉搜索树有什么区别?我觉得两者都定义了相同的含义,但有一个我不知道的区别所以帮助我。
What's the difference between binary trees and binary search trees?
这些树的 shape 没有区别,但是二叉搜索树对其节点具有的值施加了限制,这对于(仅)不存在二叉树:
- 节点的值不得小于其左子树中的任何值
- 节点的值不得大于其右子树中的任何值
表达这种约束的另一种方式是:
- 树中值的中序遍历必须是非递减的。
实际上这意味着当你得到:
- 具有节点 的二叉树的形状
- 树中存在的一组唯一值
...那么只有一种可能的方法可以将这些值与树的节点相关联,使其成为二叉搜索树。如果它不必是二叉 search 树,那么有!建立这种联系的方法。
结论:
给定 ,那么(第th个加泰罗尼亚数字)表示:
- 节点没有值的二叉树的数量(即二叉树的形状的数量)
- 具有不同值的二叉搜索树的数量
具有不同值的二叉树的数量是!