A multi-sharing resource allocation scheme for full-duplex D2D communications underlaying cellular networks