Approximation Algorithms for Connectivity Problems