樹 4 判斷某個序列是否是二叉查詢樹的後序遍歷結果

2021-07-15 01:14:10 字數 818 閱讀 5330

二叉搜尋樹:

(1) 它或者是一棵空樹;

(2) 或者是具有下列性質的二叉樹:

<1> 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;

<2> 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;

<3> 左、右子樹也分別為二查詢序樹

5 7 6 | 9 11 10|8

由後序遍歷性質可知最後乙個元素是根節點

然後根據搜尋二叉樹性質劃分為:根左子樹|根右子樹|根

遞迴處理前兩部分

#include

using namespace std;

bool judge(int a,int

length)

int k = i;

int j = 0;

for (j = k;j < length-1;j++)

}bool left = true;

if (k > 0)

left = judge(a,k);

bool right = true;

if (j < length-1)

right = judge(a+key,length-k-1);//分界點右側陣列,這裡要注意哦

return (left&&right);//注意這裡是&&

}int main()

;// judge(a,7);

cout << judge(a,4)0;}

執行如下:

[root@localhost c++]# ./a.out

0

判斷整數序列是否是二叉查詢樹的後序遍歷

這是一道面試題,解題的 如下 我這裡把有重複節點的序列排除了,這裡的二叉樹不允許有相同值得節點 bool judgelistisbstreepostorder int iarray,int nleft,int nright int nmidvalue iarray nright int nsuble...

判斷二叉樹是否是平衡二叉樹

二叉樹的節點定義為 public class treenode 二叉樹的深度 根節點到葉節點的最長路徑長度 平衡二叉樹 二叉樹中任一節點的左右子樹的深度相差不超過1 遞迴的方法 如下 public boolean isbalanced treenode root intleft getheight ...

判斷二叉樹是否是平衡二叉樹

平衡二叉搜尋樹 balanced binary tree 具有以下性質 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。思路 如果一顆二叉樹的所有子樹都是平衡二叉樹,它一定是平衡二叉樹。include using namespace std typedef...