In this project there will implementation of my own versions of the stack and queue data structures. Although the Java API provides built-in support for them, I wrote my own to practice the constructs and language details.
Essentially, you are writing your own data structure library that could be used by others in the same way that one can use ArrayList<>. Your library provides data structures as classes, the method calls expected with those data structures and the definition for an iterator so that the clients of your libraries can iterate through the lists in the same way as most generic data structures in Java.
In this simplified version, each data structure is a singly linked list. The stack is LIFO (last in first out) while the queue is FIFO (first in first out). Your implementation must be generic, like ArrayList, as to allow for different types when each data structure object is instantiated.
You will also implement the Iterator design pattern; allowing users access to multiple custom Iterators for your data structures.