題目描述:判斷兩序列是否為同一二叉搜尋樹序列
輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出:如果序列相同則輸出yes,否則輸出no
樣例輸入:
2567432
543267
576342
0
樣例輸出:
yesno
分析:現根據輸入序列,構建二叉搜尋樹,然後使用中序和後序,或中序和前序,遍歷兩個二叉樹;若遍歷結果相同,則是。
包含中序的兩種遍歷方式,可確定乙個二叉樹。
#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...
判斷兩序列是否為同一棵二叉搜尋樹
九度提供的演算法設計思路是 對輸入的數字序列構建二叉排序樹,並對它們進行前序和中序的遍歷,依次比較遍歷結果是否相同,若相同則說明兩棵二叉排序樹相同,否則不同。這個設計思路是沒有問題的,但是有點畫蛇添足的成份。那麼這個 蛇足 是什麼呢?試想一下二叉排序樹的性質,如果對二叉排序樹來說,對其進行中序遍歷,...