Algorithm is a tool that provides a well-defined & efficient computational procedure to transform your input into output. We use Algorithm because. Algorithm helps to solve computational problems. Solid Algorithmic knowledge & technique separates the truly skilled programmer from the novices Algorithmic analysis will clear your vision about a computational problem & will let you go farther with it Algorithms are the core of most technologies that we see in modern electronic devices And many more...
I can't explain any mathematical reason (except the fact that DS has much better compile time then for example binary search, which I understand is a very common problem) for why they used such a DS to achieve such high efficiency. Perhaps they will publish an updated/improved version of their algorithm, but since I can't explain it, I don't think I will. Why is this important then? Well, it means that in some classes of graphs a DS in linear time takes O(MN) time when implemented using such DS (in other words they can't compete with the same algorithm for solving the same class of graphs if the solution is guaranteed). If we want the fastest algorithm for finding the minimum for a given class of graphs using linear space of vertices as defined in Section 3.3.1 in Appendix, we must use such DS! In other words, this means.