給定節(jié)點(diǎn)數(shù)的二叉樹(shù)排列組合

二叉樹(shù)的排列組合

給定 n 個(gè)節(jié)點(diǎn),計(jì)算可以構(gòu)成多少種不同的二叉樹(shù)

  1. n <= 1 時(shí),二叉樹(shù)的排列方式為 1 種

  2. 根據(jù)公式,計(jì)算
    h(n) = \frac{C_{2n}^n}{n+1}

  3. 代碼塊

    import java.util.Scanner;
    
    public class Pailiezuhe {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            long nodeNum = sc.nextLong();
            catalan(nodeNum);
            sc.close();
    
        }
    
        /**
         * 二叉樹(shù)排列組合公式
         * @param nodeNum:節(jié)點(diǎn)個(gè)數(shù)
         * (2nodeNum 與 nodeNum 組合) / (nodeNum + 1)
         */
        public static void catalan(long nodeNum) {
            long zuhe = jiecheng(2 *nodeNum) / (jiecheng(nodeNum) * jiecheng((2 * nodeNum) - nodeNum));
            long result = zuhe / (nodeNum + 1);
            System.out.println(result);
        }
    
        /**
         * 階乘計(jì)算函數(shù)(3!=6;5!=120),參數(shù)使用 long ,預(yù)防精度誤差
         * @param num
         * @return
         */
        public static long jiecheng(long num) {
            if (num >=1) {
                return jiecheng(num - 1) * num;
            }
            return 1;
        } 
    }
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容