int UniqueBSTNumber(int n)
{
vector<int> f(n+1, 0); //f[i]表示1到i能形成的不同形状的BST个数
f[0] = 1; //空树
f[1] = 1;
for (int i = 2; i <= n; i++)
{
for (int j = 1; j <= i; j++) //遍历1到i,分别为根的情况
{
f[i] += f[j-1] * f[i-j]; //左子树个数*右子树个数
}
}
return f[n];
}
给一个正整数n,求从1到n能构造多少种不同形状的二叉查找树(BST)
原文作者:二叉查找树
原文地址: https://blog.csdn.net/wwj_ff/article/details/46358979
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/wwj_ff/article/details/46358979
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。