A* is a great algorithm. You don't really need any libraries to write it, the data structures you need would be fairly simple. Either a graph implemented as a collection of nodes with a linked list of neighbors or an adjacency matrix would be good. It would probably be beneficial for you to try both. The fun part is the algorithm itself.

It might be a good exercise for you to build your own library of common data structures (singly and doubly linked lists, trees, heaps, etc). You can use them as study tools for the data structures themselves, compare different data structures for memory use or run time, or for studying algorithms like A*. It would also be a good opportunity for you to get some good software design practice.