Tree Learning Algorithm