Distributed Degree-Constrained Application-Level Multicast Tree: A Partitioning Approach