一个模拟函数,目的在于找到一对节点的最近公共祖先.实现思想是首先将树映射到一个数组中,跟节点值域为ROOT,其余节点值域为父节点索引,这样可以轻松找到父节点.于是,一个显而易见的模拟函数出现了. /* 8-10-12-02-22.29.c -- 第八章第十题 */ /* This is a model that can return a proximate communal parent betwen two node */ /* First, map a tree to an array */ ElementType FindCommunalParent (const ElementType * const array, const int v, const int w) ; ElementType FindCommunalParent (const ElementType * const array, const int v, const int w) { if (ROOT == v || ROOT == w) return FAILED ; if (array[v] < array[w]) { while (w != ROOT && array[v] != array[w]) w = array[w] ; } else if (array[v] > array[w]) { while (v != ROOT && array[v] != arrat[w]) v = array[v] ; } else return array[v] ; /* Or array[w] */ }