The document contains 5 programs that implement various data structures and algorithms using C++ templates. Program 1 implements a stack ADT using arrays. Program 2 implements a queue ADT using arrays. Program 3 implements a stack using a singly linked list. Program 4 implements queues using singly linked lists. Program 5 contains parts a-c which implement conversion between infix, postfix and prefix notation as well as evaluation of postfix expressions. Program 6 implements a deque (double ended queue) using a doubly linked list.