L2 004 這是二叉搜尋樹嗎?

2021-09-10 16:00:40 字數 1158 閱讀 2035

一棵二叉搜尋樹可被遞迴地定義為具有下列性質的二叉樹:對於任一結點,

所謂二叉搜尋樹的「映象」,即將所有結點的左右子樹對換位置後所得到的樹。

給定乙個整數鍵值序列,現請你編寫程式,判斷這是否是對一棵二叉搜尋樹或其映象進行前序遍歷的結果。

輸入的第一行給出正整數 n(≤1000)。隨後一行給出 n 個整數鍵值,其間以空格分隔。

如果輸入序列是對一棵二叉搜尋樹或其映象進行前序遍歷的結果,則首先在一行中輸出yes,然後在下一行輸出該樹後序遍歷的結果。數字間有 1 個空格,一行的首尾不得有多餘空格。若答案是否,則輸出no

輸入

7

8 6 5 7 10 8 11

輸出

yes

5 7 6 8 11 10 8

#include #include#include#includeusing namespace std;

const int maxn=1e3+5;

int in[maxn];

int inl[maxn];

int inr[maxn];

int post[maxn];

int n;

int cnt=0;

struct node;

//插入結點

node* finsert(node* tree,int x)else if(tree->data<=x)else

return tree;

}//先序遍歷

void inll(node* tree)

void inrr(node* tree)

//後序遍歷

void fpostl(node *tree)

void fpostr(node *tree)

int main()

bool flag=true,flag2=true;

inll(tree);

cnt=0;

inrr(tree);

for(int i=0;i}

for(int i=0;i}

if(flag)

}else if(flag2)

}else

return 0;

}

L2 004 這是二叉搜尋樹嗎?

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 一棵二叉搜尋樹可被遞迴地定義為具有下列性質的二叉樹 對於任一結點,所謂二叉搜尋樹的 映象 即將所有結點的左右子樹對換位置後所得到的樹。給定乙個整數鍵值序列,現請你編寫程式,判斷這是否...

L2 004 這是二叉搜尋樹嗎?

一棵二叉搜尋樹可被遞迴地定義為具有下列性質的二叉樹 對於任一結點,其左子樹中所有結點的鍵值小於該結點的鍵值 其右子樹中所有結點的鍵值大於等於該結點的鍵值 其左右子樹都是二叉搜尋樹。所謂二叉搜尋樹的 映象 即將所有結點的左右子樹對換位置後所得到的樹。給定乙個整數鍵值序列,現請你編寫程式,判斷這是否是對...

L2 004 這是二叉搜尋樹嗎?

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 一棵二叉搜尋樹可被遞迴地定義為具有下列性質的二叉樹 對於任一結點,所謂二叉搜尋樹的 映象 即將所有結點的左右子樹對換位置後所得到的樹。給定乙個整數鍵值序列,現請你編寫程式,判斷這是否...