Fundamentals of Data Structures in C