Hello,
I learned about programming techniques (greedy, backtracking, devide et impera - divide and conquer, dynamic programming, branch and bound - A* search, etc.) more than 20 years ago and I have been using them ever since.
I feel confident I can answer your greedy algorithms, Depth-First Search and Breadth-First Search, Minimum Spanning Trees (Prim and Kruskal's algorithms) and Single-Source Shortest Paths (Dijkstra's algorithm, which is a dynamic programming algorithm) questions quite well and I will do my best trying to make sure you understand them fully.
Feel free to contact me if you have any questions.
Thank you and good luck,
Bob