是否同一棵二叉搜尋樹

2022-06-05 02:33:09 字數 1020 閱讀 7322

1.分別建立兩棵二叉搜尋樹

建立:

tree initial(int

n)

else

root =t[root].left;

}else

else

root =t[root].right;}}

}return

t;}

非遞迴:用兩個佇列來層序遍歷,若遇到不相同的元素就不相同

void

compare(tree t1, tree t2)

*/if(t1[number1].num!=t2[number2].num)

if (t1[number1].left !=null)

in(q1, t1[number1].left);

if (t1[number1].right !=null)

in(q1, t1[number1].right);

if (t2[number2].left !=null)

in(q2, t2[number2].left);

if (t2[number2].right !=null)

in(q2, t2[number2].right);

}printf(

"yes\n");

return

;}

遞迴:根相同,遞迴比較左右子樹

int compare(tree t1, tree t2,int root1,int

root2)

else

return0;

}

2.建立一棵樹,再判別其他序列是否與該樹一致

思路:樹結點多乙個flag域,第一棵樹建立起來後,在樹上搜尋要判定序列中的每乙個結點,如果搜尋經過的結點有未出現的結點,則一定不是同一棵樹。因為如果遇到了未出現的結點,則該結點一定插在這裡的,而不是後面才插進來。

是否同一棵二叉搜尋樹

5 4 是否同一棵二叉搜尋樹 25分 給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入包含若干組測試資料。每...

是否同一棵二叉搜尋樹

04 樹4 是否同一棵二叉搜尋樹 25 分 給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入格式 輸入包含若...

是否同一棵二叉搜尋樹

給定乙個插入序列就可以唯一確定一棵二叉搜尋樹。然而,一棵給定的二叉搜尋樹卻可以由多種不同的插入序列得到。例如分別按照序列和插入初始為空的二叉搜尋樹,都得到一樣的結果。於是對於輸入的各種插入序列,你需要判斷它們是否能生成一樣的二叉搜尋樹。輸入格式 輸入包含若干組測試資料。每組資料的第1行給出兩個正整數...