Spanning tree created with cycles breaking different form the Maximal Spanning Tree.

The tree you get this way is guaranteed to be a maximal spanning tree.

If $T_\max$ is a maximal spanning tree, and $C$ is any cycle, then $T_\max$ can't possibly include the minimal-weight edge $e$ of $C$. Suppose it did. Deleting $e$ leaves $T_\max$ in two components, and since $C$ contains at least one edge crossing from one component to the other (the edge $e$) it must contain at least two. So there's some other edge $e'$ lying on $C$ which crosses from one component to the other, and which we can add to $T_\max - e$ to make it connected again.

But this is an improvement: we've deleted $e$, and added $e'$ which has higher weight than $e$. This contradicts our assumption that $T_\max$ was a maximal spanning tree.

As a result, $T_\max$ already can't include any minimal-weight edge of any cycle. If we go through the cycles and delete their minimal-weight edges, we never lose any edges of $T_\max$, so the remaining subgraph must contain $T_\max$. However, the remaining subgraph is a tree (it doesn't have any cycles, we ensured that) and so it must be $T_\max$.


Let $e_1, e_2,\dots,e_m$ be an ordering of the edges such that $\nu_{e_1} \leq \nu_{e_2} \leq \dots \leq \nu_{e_m}$. If you run Kruskal's algorithm according to this ordering, the edges of the tree you get will be precisely those $e_i$ which are not in a cycle in the subgraph $G_i = (B, \{e_j, j \geq i\})$ of $G$. (Equivalently, those $e_i$ whose endpoints lie in different connected components of $G_{i+1}$.) On the other hand, your algorithm will delete those edges $e_i$ which are in a cycle in $G_i$. So the two algorithms actually give the same spanning tree!

Although this might not be useful to you right now, I can't resist adding a note about this question from the point of view of matroid theory. The above observations actually work in any matroid to show that your algorithm gives a maximum weight basis. There is actually a deeper underlying reason for this. The complement of a maximum weight basis is a minimum weight basis in the dual matroid. So running the greedy algorithm in the dual matroid to find a minimum weight basis and then taking the complement gives a maximum weight basis in the original matroid, and this is exactly what your algorithm does!