ADVANCED DATA STRUCTURES LABORATORY
OBJECTIVES: To learn to implement iterative and recursive algorithms. To learn to design and implement algorithms using hill climbing and dynamic programming techniques. To learn to implement shared and concurrent objects. To learn to implement concurrent data structures. LAB EXERCISES: Each student has to work individually on assigned lab exercises. Lab sessions could be scheduled as one contiguous four-hour session per week or two two-hour sessions per week. There will be about 15 exercises in a semester. It is recommended that all implementations are carried out in Java. If C or C++ has to be used, then the threads library will be required for concurrency. Exercises should be designed to cover the following topics: 1. Implementation of graph search algorithms. 2. Implementation and application of network flow and linear programming problems. 3. Implementation of algorithms using the hill cl