判斷兩序列是否為同一二叉搜尋樹序列一道模板題!~input
開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
output
如果序列相同則輸出yes,否則輸出no
sample input
sample output2
567432
543267
576342
0
yes
no
題意:先給一組資料構建一顆二叉搜尋樹作為標準樹。然後n組資料,判斷每組資料構成的二叉搜尋樹是否和標準樹一樣。
思路:兩棵樹如果一樣的話,就是擁有一樣的節點,在每個節點上具有相同的值。
因此在遍歷二叉樹的時候,每向下移動乙個節點時,判斷是否與此時的標準樹一致。
#include#includebool flag;
struct node
;node *insert(node *p,int x)///依次插入每個值
else///節點不為空 此節點有值
}void check(node *root,node *room)///中序遍歷 傳入標準樹和判斷樹的位址
else if(root!=null||room!=null)///乙個為空另乙個不為空有節點值 顯然不一致
flag=0;
}int main()
{ int n;
while(~scanf("%d",&n)&&n)
{node *root=null;///標準樹 為空
char str[20];
scanf("%s",str);
for(int i=0; i轉眼暑假訓練已經過去的一大半~,反思自己每天的狀態~~~~~
學而不思則罔~思而不學則殆~
溫故而知新!
古人誠不我欺~~
人生有太多的遺憾,太多的夢想沒有實現,太多的事情都還沒有去做,
太多的地方還沒有去,太多的人還沒來得及回報,
時間如流水,走過去的地方,都已經留下一串串後悔的腳印,是不可改變的,
我們現在能做的是,珍惜現在,珍惜擁有,珍惜每乙個讓你值得心動的人。
共同寫下那兩個字:惜緣。
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 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...
二叉搜尋樹 修剪二叉搜尋樹
第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...
樹 二叉樹 二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...