TreeConstruct(S) 1. Let L be the set of species appear in S. Build G(L) 2. Let C1 , C2 , . . . , Cq be the set of connected components in G(L) 3. If q >1, then • For i = 1, 2, . . . , q, let Si be the set of triplets in S labeled by the set of leaves in Ci . • Let Ti = TreeConstruct(Si ) • Let T be a tree formed by connecting all Ti with the same parent node. Return T. 4. If q=1 and C1 contains exactly one leaf, return the leaf; else return fail.