二元查詢樹的定義為:
(1)若左子樹不空,則左子樹上所有節點的值均小於其根節點的值。
(2)若右子樹不空,則右子樹上所有節點的值均小於其跟節點的值
(3)其左右子樹也均為二叉查詢樹。
那麼先給定乙個數字序列5、7
、6、9
、11、10
、8,判斷這個序列是否是二元查詢樹的後根遍歷。可以回想一下後序遍歷的性質,先訪問左子樹,然後訪問右子樹,最後訪問根節點。結合以上這些性質,就可以理解到,應該從給定序列的最後乙個元素開始,最後乙個元素設定為根節點,迴圈遍歷一次陣列,找左右子樹的分界點,上面這個例子就是6,9之間。這樣可以判斷,5、6、7,這三個數為以8為根節點的左子樹上的節點,9、11、10為以8為根節點的右子樹的根節點。如果在對以上分出來的兩個陣列做同樣的操作,那麼就可以解決這個問題。綜上所述,可以應用遞迴方法,遞迴的關鍵是找到結束的條件。下面給出**,並進行兩組測試。
#include#includeint verify_is_post(int *s,int length)
for(j=i;j0)
int right=1;
if(i
判斷整數序列是不是二元查詢樹的後序遍歷結果
二叉查詢樹 binary search tree 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。post order 先訪問左節點,再訪問右節點...
判斷整數序列是不是二元查詢樹的後序遍歷結果
第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入...
判斷整數序列是不是二元查詢樹的後序遍歷結果
二叉樹 遍歷 一 題目 感謝 提供的題目 判斷整數序列是不是二元查詢樹的後序遍歷結果 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如 輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 1...