Data Structures, Algorithms, and Applications in Java


Sartaj Sahni

Real Video Lectures

Videos of 33 of the 41 lectures (excluding lecture periods in which an exam was conducted) for this course are available for download from here. You will need a real media player to watch the downloaded video files. Two no cost players with which these files have been tested are PlayItAll and Real Alternative. You should be able to find download sites for these and other real media players by searching the Web using your favorite search engine.

The table below identifies the lectures for which a video is available. The name of the video file is COP3530_xx.rm, where xx is the lecture number.

Lecture Content Reading Video
1 Course overview and insertion sort. Chapters 1 through 3. Not Available
2 Insertion sort and practical complexities. Section 3.5. Not Available
3 Run-time measurement. Chapter 4. Not Available
4 Linear lists. Sections 5.1-5.2. Not Available
5 Array representation and array resizing. Section 5.3. Available
6 Walk through of code for ArrayLinearList. Section 5.3. Available
7 Iterators. Linked representation of a linear list. Sections 5.3 and 6.1. Available
8 Walk through of code for Chain. Head nodes, circular lists, doubly linked lists. Sections 6.2 and 6.3. Not Available
9 Simulated pointers and available-space lists. Sections 7.1 and 7.2.Available
10 Row-major and column-major indexing, and special matrices. Sections 8.1, 8.2, and 8.3. Available
11 Sparse matrices. Section 8.4. Available
12 Stacks--application to parentheses matching, towers-of-hanoi, railroad car rearrangement, and switchbox routing; array stacks. Sections 9.1, 9.2, 9.5. Available
13 Array and linked stacks. Section 9.3 and 9.4. Available
14 Nonapplicability of queues for parantheses matching, towers-of-hanoi, railroad problem with LIFO tracks, and switchbox routing. Application of queues to railroad problem with FIFO tracks, wire routing, and component labeling. Array and linked queues. Sections 10.1-10.4, 10.5.1-10.5.3. Available
15 Exam. - -
16 Dictionaries, linear list representation, and hashing. Sections 11.1, 11.2, 11.3, and 11.5. Available
17 Hashing and hash table design. Section 11.5. Available
18 LZW compression. Section 11.6. Available
19 Trees, binary trees, and properties. Sections 12.1-12.3. Not Available
20 Binary tree representation and operations. Sections 12.4 and 12.5. Not Available
21 Binary tree traversal methods-- preorder, inorder, postorder, level order. Reconstruction from two orders Sections 12.6-12.8. Available
22 Online equivalence classes. Section 12.9.2. Available
23 Application of priority queues to heap sort and machine scheduling. Min and max heaps. Sections 13.1-13.3, 13.6.1, and 13.6.2. Available
24 Initialization of min and max heaps. Height- and weight-biased leftist trees. Sections 13.4.4 and 13.5. Available
25 Winner and loser trees and application to k-way merging, run generation, and first-fit bin packing. Chapter 14. Available
26 Binary search trees and indexed binary search trees. Sections 15.1-15.5. Not Available
27 Definition of AVL trees. Graph applications and properties. Sections 16.1, 17.1-17.3. Available
28 Graph operations and representation. Sections 17.4-17.7. Available
29 Breadth-first and depth-first search. Application to path finding, connected components, and spanning trees. Sections 17.8 and 17.9. Available
30 Greedy method and application to bin packing, loading, and knapsack problems. Sections 18.1, 18.2, 18.3.1, and 18.3.2. Available
31 Exam. - -
32 Single source all destinations shortest paths algorithm. Section 18.3.5. Available
33 Kruskal's and Prim's minimum-cost spanning tree algorithms. Section 18.3.6. Available
34 Divide and conquer, and application to defective chessboard and min-max problem. Iterative min-max implementation. Sections 19.1 and 19.2.1. Available
35 Merge sort, natural merge sort, and quick sort. Sections 19.2.2 and 19.2.3. Available
36 Selection and closest pair of points. Sections 19.2.4 and 19.2.5. Available
37 Dynamic programming, 0/1 knapsack problem, recursive and iterative solutions. Sections 20.1 and 20.2.1. Available
38 Matrix multiplication chains, dynamic programming recurrence, recursive solution. Section 20.2.2. Available
39 Iterative solution to matrix multiplication chains. Section 20.2.2. Available
40 All pairs shortest paths. Section 20.2.3. Available
41 Single source shortest paths with negative edge weights. Section 20.2.4. Available
42 Solution space trees and backtracking. Section 21.1. Available
43 Branch and bound. Section 22.1. Available