Data Structures course introduces students to fundamental concepts and techniques for organizing and manipulating data efficiently within computer programs. The course covers essential data structures such as arrays, linked lists, stacks, queues, trees, AVL trees, splay trees, B-trees, disjoint union-find, hash table and analysis of sorting algorithms. In the coursa we emphasizing their applications, design principles, and trade-offs in terms of time and space complexity. We learned how to choose the appropriate data structure for specific problem-solving scenarios, implement them using Java programming languages and analyze their performance characteristics. By the end of the course, I gain a deeper understanding of how data is managed within computer memory and develop the skills necessary to design and implement optimized data structures.
In this repository, I have included three Java programming assignments completed during the course, each focusing on essential topics in data structures. The first assignment delves into the implementation and application of heap and queue data structures, exploring their significance in various computing tasks. The second assignment centers around sorting algorithms, providing hands-on experience with different sorting techniques and their comparative efficiencies. Lastly, the third assignment revolves around the concept of Splay trees, allowing for a comprehensive understanding of self-adjusting data structures and their role in optimizing data retrieval operations. Through these assignments, I have not only honed my programming skills but also deepened my grasp of crucial data structure principles.