This assignment involved implementing a custom hash table and Dijkstra's algorithm in C. The hash table focused on efficient data storage and retrieval using open addressing, while Dijkstra's algorithm determined shortest paths in a weighted graph using a priority queue.
The hash table was implemented with open addressing and linear probing for collision resolution, dynamically resizing as needed. Dijkstra's algorithm used an adjacency matrix to represent the graph and a priority queue for processing nodes with the smallest cumulative cost first.
This project enhanced my understanding of memory management, collision handling, and graph theory. Debugging segmentation faults and optimizing data structures improved my skills. I learned the importance of modular design and efficient algorithms, particularly in applications like routing and scheduling.