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

2021-06-09 04:17:59 字數 1125 閱讀 5954

二叉樹----遍歷

一、題目:(感謝 提供的題目)

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

輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。

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

8/  \

6  10

/ \   / \

5 7 9 11

因此返回true。

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

二、分析:

1.整數序列,即序列中可能出現負數

2.後序遍歷:左右中

3.(1)以最後一位為基準,把前面的數分為兩類,比基準大和比基準小,並且這兩類數必須是連續的,否則返回false;

(2)以此類推,在這兩堆數中各找其基準,重複上述操作,如果沒有返回false,則返回true。

三、**:

#includeusing namespace std;

//正確

const int intarray = ;

const int arraysize = 14;

//正確

//const int intarray = ;

//const int arraysize = 7;

//錯誤

//const int intarray = ;

//const int arraysize = 4;

//錯誤

//const int intarray = ;

//const int arraysize = 12;

bool check(int startposition,int datumposition)

} }if(leftstartif(rightstartreturn true;

}void main()

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

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

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

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

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

二元查詢樹的定義為 1 若左子樹不空,則左子樹上所有節點的值均小於其根節點的值。2 若右子樹不空,則右子樹上所有節點的值均小於其跟節點的值 3 其左右子樹也均為二叉查詢樹。那麼先給定乙個數字序列5 7 6 9 11 10 8,判斷這個序列是否是二元查詢樹的後根遍歷。可以回想一下後序遍歷的性質,先訪問...