I encourage you to modify them to suit the purposes of your students. HeapDemo demonstrates inserting into and deleting from an array implementation of a heap. Q.Demo demonstrates various implementations of a queue. I always write down the assignment statements that implement insert and delete in the first example, an implementation so bad almost nobody would think of it. But if the array is indexed from 0, then one can change that to a smart implementation just by doing the arithmetic modulo the array size.
Sorts demonstrates various sorting algorithms.
There is no heapsort algorithm, so you might want to add one. My students claim it is not necessary, but they might be wrong. Cursor.demo is a demonstration of an array implementation of a linked list.