3
我有這個算法,A和B是兩個不同的二叉樹根的地址。試圖找出一個算法的目標
每個節點都有一個值,指向左子樹的指針和指向右子樹的指針。
這裏的算法:
foo(A,B){
if (A == NULL){
return B;
}
if (B != NULL){
if(A->value > B->value){
return foo(B,A);
}
B->left = foo(A->right,B->left);
A->right = B;
}
return A;
}
我還是設法瞭解其合併B樹與樹A的右子樹, 但是我沒有經理了解值的規律性。
希望你能幫助我這個,謝謝!
什麼是「排序二叉樹」? – IVlad 2015-02-05 15:42:46
感謝您的回答,如果給定的二叉樹未被排序,發生了什麼? – argamanza 2015-02-05 15:45:56
@IVlad - 有序二叉樹是左子樹的所有元素(在某種意義上)「小於」右子樹的所有元素,並且節點本身在兩者之間。在這種安排中,按順序遍歷('遍歷(A->左),A.value,遍歷(A->右)')將產生一個排序列表。 – 2015-02-05 15:46:38