判斷完全二叉搜尋樹技巧

2021-08-29 18:51:41 字數 380 閱讀 5356

#include

using namespace std;

const int maxn = 5e6+5;

int tree[maxn], n;

void add(int r, int v)

else if(val > tree[r]) add(r*2, val);

else add(r*2+1, val);

}int main()

int flag=1;

int r=1《核心思路:

首先我們用陣列模擬建樹,左子樹建立在2*a,右子樹建立在2*a+1以此完成二叉搜尋樹的建立。

那麼根據完全二叉搜尋樹的特性,如果 在1-n號節點之間,每個陣列都不為空,這個二叉搜尋樹就是完全二叉搜尋樹了。

完全二叉搜尋樹

完全二叉搜尋樹是兩個概念的包含,即完全二叉樹 二叉搜尋樹。二叉搜尋樹是一棵二叉樹,以根結點為中心,根結點左子樹的所有結點權值均小於根結點的權值,根結點右子樹的所有結點權值均大於根結點的權值。而完全二叉樹指從根結點到倒數第二層滿足完美二叉樹,最後一層可以不完全填充,其葉子結點都靠左對齊。完美二叉樹 又...

判斷二叉搜尋樹

二叉查詢樹 binary search tree 又 二叉搜尋樹,二叉排序樹 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。判斷某棵樹是否為二...

判斷二叉搜尋樹

判斷是否為二叉搜尋樹有兩種方法 1.遞迴 val表示值 left是左子樹 right是右子樹 lower 下界 比最小值還小 upper 上界 比最大值還大 class solution bool isvalidbst treenode root 2.中序遍歷 由二叉搜尋樹的性質,中序遍歷序列是遞增...