這時乙個dp問題, 我們定義f[i, j]為用i個點組成高度不超過j的二叉樹的數量, 那麼f[i][j] = sigma(f[k, j-1]*f[i-1-k, j-1]) 1<=k<=i-2; 邊界條件是: f[1][j]=1;
**如下:
/*id: m1500293
lang: c++
prog: nocows
*/#include
#include
#include
#include
using
namespace
std;
int n, k; //
n個結點 k層
int f[500][500]; //
i個結點 組成不超過j層的個數
int mod = 9901
;int
main()
}int ans = f[n][k]-f[n][k-1
]; ans = (ans%mod+mod)%mod;
cout
return0;
}
(1)判斷是否為完全二叉樹 (2)求二叉樹的高度
歡迎加qq群 453398542 學習討論,會定期分享資料課程,解答問題。1 判斷是否為完全二叉樹 2 求二叉樹的高度 include include define size 100 typedef struct bitnodebitnode,bitree 佇列 typedef struct sqq...
用遞迴來求二叉樹的高度 寬度
1 遞迴來求二叉樹的高度 可以先寫出遞迴表示式 二叉樹高度height math.max height left height right 1 即左右子樹高度的最大值加1,即為樹的高度,以此不斷遞迴,最後求出樹的高度。其實也用到了dfs的思想 public static int treedepth ...
n個節點組成二叉樹的形態有幾種
n個節點能組成的二叉樹形態有幾種呢?可以先進行簡單的列舉 當n 1時,形態有1種 當n 2時,形態有2種 當n 3時,形態有5種 當n 4時,形態有14種 直接給出結論 當有n個節點時,能組成 根據這個公式可以得到乙個數列 1 2 5 14 42 132 這個數列是比利時數學家卡特蘭 catalan...