浙大機試OJ 二叉搜尋樹

2021-08-21 19:08:19 字數 916 閱讀 7609

判斷兩序列是否為同一二叉搜尋樹序列

開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。

接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。

接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。

如果序列相同則輸出yes,否則輸出no
2

567432

543267

576342

0

yes

no

前序遍歷和中序遍歷可以唯一確定一棵二叉樹,對於二叉排序樹,相同元素的二叉排序樹中序遍歷一定相同,而不同元素二叉排序樹使用前序遍歷就可以發現不相同,所以只需要前序遍歷兩個二叉樹,比較兩者是否相同就可以判斷。

#includeusing namespace std;

struct nodetree[1000];

int size = 0;

node * create()

node * build(node* tree, int x)else if(x > tree->x)else if(x < tree->x)

return tree;}

int count=0;

void preorder(node* tree, int a)

int main(){

int n;

while(cin >> n && n!=0){

string s;

cin >> s;

node* tree = null;

for(int i=0; i> s1;

for(int i=0; i關於二叉樹的問題還是挺容易出現的,對這個知識點掌握得還不好,繼續加油吧!ヾ(◍°∇°◍)ノ゙

浙大機試 二叉搜尋樹

題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入描述 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判...

王道機試指南 二叉樹與二叉搜尋樹

二叉樹題目鏈結二叉樹 題意 在乙個完全二叉樹中給出乙個子樹的根和樹的最後乙個結點,求其子樹的結點個數。思路 分為三種情況 其中2 3情況均為乙個滿二叉樹,只需要知道其子樹的深度就可以直接算得,而對於第一種情況,需要先計算出其最後一層的結點樹,再加上以上的結點數。如下 include include ...

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 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...