Source: https://www.ics.uci.edu/~goodrich/teach/graph/notes/MST.pdf