給出前序,判斷是否為二叉搜尋樹或者映象二叉搜尋樹,若是則輸出其後序遍歷
關鍵**:
//第乙個點為根節點,往後比它小的點是它的左子樹的點,
//再往後的全部是它右子樹的點,應該全部大於等於它,
//如果是映象的,那麼只要保證小於就好
void
getpost
(int root,
int tail)
else
if(i - j !=1)
return
;//如果要求輸出中序遍歷,則push_back()操作放在中間
getpost
(root +
1, j)
;getpost
(i, tail)
; post.
push_back
(pre[root]);
}
呼叫時:getpost(0,n-1)
(由post陣列的長度是否與n的長度相等即可判斷該樹是否為二叉搜尋樹)
這是二叉搜尋樹嗎?(二叉搜尋樹前序轉後序)
輸入樣例 1 78 6 5 7 10 8 11 輸出樣例 1 yes5 7 6 8 11 10 8 輸入樣例 2 78 10 11 8 6 7 5 輸出樣例 2 yes11 8 10 7 5 6 8 輸入樣例 3 78 6 8 5 10 9 11 輸出樣例 3 no include using na...
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...
二叉搜尋樹 修剪二叉搜尋樹
第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...