下面的代碼塊究竟如何工作?更具體地說,程序如何知道返回哪個選項?世界上的這種代碼如何阻止工作[樹]?
return ancestor (node1->left(), node2)
|| ancestor (node1->right(), node2)
|| ancestor (node2->left(), node1)
|| ancestor (node2->left(), node1);
該代碼塊是代碼部分來遍歷樹,以便確定是否一個節點處於樹給定的節點1和節點2時的另一個的祖先。
注意,節點1和節點中傳遞給負責確定是否存在可能的祖先/後代關係的函數:
bool ancestor (const Binary_node<Type> * node1, const Binary_node<Type> * node2)
{
// .... code
}
這是多麼可愛的遞歸。 – LihO 2012-02-15 20:13:51