題目大意:給出乙個序列,你需要判斷它是不是乙個bst的先序遍歷序列或者是不是bst映象的先序序列(所謂的映象就是所有的根結點的左子樹的所有結點值大於對應的根結點的值,而右子樹的所有結點值大於對應的根結點的值)
如果是的話,就輸出yes以及樹的後序序列
如果不是的話,就輸出no
樣例:輸入
78 6 5 7 10 8 11
輸出yes
5 7 6 8 11 10 8
#include
using
namespace std;
struct node
node()
};void
insert
(node*
& root,
int x)
//只要是改變樹的結構的,都必須使用引用
if(x>val)
else
}void
preorder
(node* root,vector<
int>
& ans)
void
preordermirror
(node* root,vector<
int>
& ans)
void
postorder
(node* root,vector<
int>
& ans)
void
postordermirror
(node* root,vector<
int>
& ans)
intmain()
preorder
(a,pre)
;preordermirror
(a,premirror)
;postorder
(a,post)
;postordermirror
(a,postmirror);if
(origin==pre)
}else
if(origin==premirror)
}else
}
BST樹及其相關操作
又稱二叉排序樹 二叉搜尋樹 左子樹的所有節點小於根節點,右子樹均大於根節點。其中序遍歷的結果是從小到大排列的值。bst樹的基本構造 此處不僅有左右孩子,也新增了雙親節點。使其進行某些演算法更加方便。class bstnode public bstnode int x,bstnode pa publi...
bs t結構及其相關函式的定義
參考bs.h 此部分內容對應h.264標準9.1節及 2 中6.4.13小節 bs t結構描述了位元流的概念,從位元流中進行順序讀寫操作 類似於前向迭代器 typedef struct bs s bs t void bs init bs t s,void p data,int i data 使用p ...
概率相關的題目
1 乙個隨機數產生器以概率p生成0,以概率 1 p 生成1,怎樣生成等概率的0和1?如果用這個隨機數產生器產生兩個位,出現00的概率為p 2,出現01的概率為p 1 p 出現10的概率為 1 p p,出現11的概率為 1 p 2。看到沒有,出現01和10的概率相等。那麼我們就可以用這個隨機數生成器每...