Hierarchical diffusion algorithms for distributed estimation