Network coding is a powerful coding technique that has been proved to be very effective in achieving the maximum multicast capacity. It is especially suited for new emerging networks such as ad-hoc and sensor networks. In this work, we investigate the multicast routing problem based on network coding and put forward a practical algorithm to obtain the maximum flow multicast routes in ad-hoc networks. The "conflict phenomenon" that occurs in undirected graphs will also be discussed. Given the developed routing algorithm, we will present the condition for a node to be an encoding node along with a corresponding capacity allocation scheme. We will also analyze the statistical characteristics of encoding nodes and maximum flow in ad-hoc networks based on random graph theory.