判斷該陣列是不是某二元查詢樹的後序遍歷的結果

2021-09-30 11:37:19 字數 510 閱讀 2395

題目:輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。

如果是返回true,否則返回false。

例如輸入5、7、6、9、11、10、8,由於這一整數序列是如下樹的後序遍歷結果.

8/ \

6   10

/ \    / \

5  7 9 11

因此返回true。

如果輸入7、4、6、5,沒有哪棵樹的後序遍歷的結果是這個序列,因此返回false。

5、7、6、9、11、10、8

分析:按照二元查詢樹後續遍歷的性質:最後乙個節點是根(8),從乙個元素開始與根比較,找到第乙個大於根的值,記錄下該位置i,位置i之前的是根的左子樹,之後的是根的右子樹,故右子樹的值需要均大於根的值,否則,就不是二元查詢樹的後序遍歷結果,然後採用遞迴處理之。(按性質判斷即可,不需要構建乙個二元查詢樹)。

bool posorder(int a, int left, int right)

int j=i;

for(j=i; j

判斷該陣列是不是某二元查詢樹的後序遍歷的結果

題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入7 4 6 5,沒有哪棵樹的後序遍歷的結果是這個序列...

判斷整數序列是不是二元查詢樹的後序遍歷結果

二叉查詢樹 binary search tree 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。post order 先訪問左節點,再訪問右節點...

判斷整數序列是不是二元查詢樹的後序遍歷結果

第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入...