I have a graph $G$ and I need to compute it's arboricity. The arboricity is a minimal number of trees that cover all edges of the graph $G$.
By computing arboricity I mean not just getting the number (which is derived from the Nash-Williams theorem) but constructing this minimal number of trees.
Could anyone suggest an algorithm for this problem and explain how it works in general matroid case (as I've searched, arboricity is a matroid covering problem)?