If you program in C, and have finished a "Project", then you should already know the answer to your own question.
You might want to check out, Developing Applications For Linux.
You might want to study some of the links through the Google search, Data structures and algorithms in C
Similar Google searches would lead to other sites, or related documents.
Good luck.