判斷兩個二叉搜尋樹序列是否一致

2021-06-23 06:08:20 字數 1151 閱讀 8089

題目描述:判斷兩序列是否為同一二叉搜尋樹序列

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

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

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

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

樣例輸入:

2

567432

543267

576342

0

樣例輸出:

yes

no

分析:現根據輸入序列,構建二叉搜尋樹,然後使用中序和後序,或中序和前序,遍歷兩個二叉樹;若遍歷結果相同,則是。

包含中序的兩種遍歷方式,可確定乙個二叉樹。

#include#includestruct node

tree[25];

int alloc;

node * createnode()

node *insert(node *t, char c) //插入節點

else if(t->digit>c)

t->lchild=insert(t->lchild,c);

else if(t->digitrchild=insert(t->rchild,c);

return t;

}char postandin[25]; //後序和中序遍歷序列的連線

int size; //postandin的大小

char input[25],test[25]; //輸入和測試序列

char inputresult[25],testresult[25]; //輸入和測試序列的遍歷結果

int n; //測試序列個數

void post_order(node *t)

void in_order(node *t)

int main()

} return 0;

}

判斷兩個二叉樹是否相同

判斷兩個二叉樹是否相同 遞迴解法 public boolean issametreerec treenode p,treenode q if p null q null else else else 第一次寫了乙個是這樣的,自己覺得也可以,提交時不能ac,想了下根本是自己演算法立足點不對,分享下 對...

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

輸入 輸入兩個字串,注意每個數字0 9 思路 建樹之後,對兩個樹前序遍歷 中序遍歷,前序遍歷結果相同並且中序遍歷結果也相同,說明為同乙個二叉搜尋樹 判斷兩序列是否為同一二叉搜尋樹序列 輸入字串,每個數字0 9 include include include using namespace std s...

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

九度提供的演算法設計思路是 對輸入的數字序列構建二叉排序樹,並對它們進行前序和中序的遍歷,依次比較遍歷結果是否相同,若相同則說明兩棵二叉排序樹相同,否則不同。這個設計思路是沒有問題的,但是有點畫蛇添足的成份。那麼這個 蛇足 是什麼呢?試想一下二叉排序樹的性質,如果對二叉排序樹來說,對其進行中序遍歷,...