不同的二叉查詢數

2021-09-14 02:51:35 字數 472 閱讀 9365

給出 n,問由 1...n 為節點組成的不同的二叉查詢樹有多少種?

給出n = 3,有5種不同形態的二叉查詢樹:

二叉搜尋樹的乙個性質:左邊的數都比根小,右邊的數都比根大。由於二叉樹的節點是從1到n,所以我們如果確定根為i,則根左邊的數是1到i-1,根右邊的數是i+1到n。

選取乙個結點為根,就把結點切成左右子樹,以這個結點為根的可行二叉樹數量就是左右子樹可行二叉樹數量的乘積。

所以總的數量是將以所有結點為根的可行結果累加起來。

res[i]表示含有i個結點的二叉查詢樹的數量。

class solution 

}return res[n];

}

};

二叉查詢數

二叉查詢樹,或者是一顆空樹,具備以下性質得二叉樹 1,若它的左子樹不空,則其左子樹上的所有結點的值均小於它根結點的值 2,若它的右子樹不空,則其右子樹上的所有結點的值均大於它根結點的值 3,它的左 右子樹也分別為二叉查詢樹 具體如下圖 查詢操作 在二叉查詢樹中查詢x的過程如下 1 若二叉樹是空樹,則...

LintCode 不同的二叉查詢樹

給出 n,問由 1 n 為節點組成的不同的二叉查詢樹有多少種?給出n 3,有5種不同形態的二叉查詢樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3solution 對於該問題我們可以使用動態規劃來求解。對於動態規劃問題我們需要確定問題的狀態和狀態轉換方程。首先我們來確定問題的狀態 給定...

不同的二叉查詢樹 II LintCode

給出n,生成所有由1 n為節點組成的不同的二叉查詢樹 樣例 給出n 3,生成所有5種不同形態的二叉查詢樹 構建start到end所有不同的二叉樹 vector build int start,int end 對於i,左子樹為start到i 1,右子樹為i 1到end 並且遍歷左右子樹的每一種情況 f...