Network coding is a data processing technique in which the flow of digital data is optimized in a network by transmitting a composite of two or more messages to make the network more robust. Network coding has been used in traditional and emerging wireless networks to overcome the communications issues of these networks. It also plays an important role in the area of vehicular ad-hoc networks (VANETs) to meet the challenges like high mobility, rapidly changing topology, and intermittent connectivity. VANETs consist of network of vehicles in which they communicate with each other to ensure road safety, free flow of traffic, and ease of journey for the passengers. It is now considered to be the most valuable concept for improving efficiency and safety of future transportation. However, this field has a lot of challenges to deal with. This paper presents a comprehensive survey of network coding schemes in VANETs. We have classified different applications like content distribution, multimedia streaming, cooperative downloading, data dissemination, and summarized other key areas of VANETs in which network coding schemes are implemented. This research work will provide a clear understanding to the readers about how network coding is implemented in these schemes in VANETs to improve performance, reduce delay, and make the network more efficient.