1. Design and implement a C# class Queue that implements a queue using a linked list. It should have the following members:
void enqueue(int i)
int dequeue()
bool isEmpty { get; }
int sum { get; }
static Queue operator + (Queue q, Queue r)
The + operator should append two queues, creating a new queue. You may implement it either destructively (taking the nodes from the two source queues) or non-destructively (copying all the nodes and leaving the two source queues intact), as you wish.
2. Write a C# class that implements a queue using a circular array.