This job consists of TWO separate problems/programs:
PROBLEM 1: Print the keys of a singly linked list in reverse order in O(N) time (where N is the number of keys in the list)
(a) using a recursive function
(b) using a nonrecursive function and O(N) extra space
(c) using a nonrecursive function and O(1) extra space
Upon completion, this printing procedure should leave the list unmodified.
PROBLEM 2: Implement a queue as a circular list. Write a class interface for the queue and the main member functions (constructor, destructor (only for C++), enqueue, and dequeue). Use as data member of the class only one pointer to a queue/list node.
For both problems, you may assume that the keys are integer numbers. Use only Java, C++, or C for the programming language.
Also, please include a readme file with explanations on the implementation (i.e. ideas, complexity analysis)
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done...submitted by FRIDAY, SEPTEMBER 24, 5:00PM EST.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows XP
Unix