I have tried to implement a queue from scratch, and it doesn't really seem to match what i found on internet, and I am wondering if this is a correct implementation, and what makes using Stack different from Linked Lists?
namespace DataStructures
{
internal class Queuez<T>
{
static int MAX = 1000;
int back;
int front = 0;
T[] queue = new T[MAX];
public void PrintValues()
{
for (int i = front; i < back; i++)
{
Console.WriteLine(queue[i]);
}
}
public void Enqueue(T val)
{
queue[back++] = val;
}
public T? Dequeue()
{
T first;
if (back < front)
{
return default(T?);
}
else
{
first = queue[front];
front++;
}
return first;
}
public void Count()
{
Console.WriteLine(back < front ? 0 : back - front);
}
public void Clear()
{
back = 0;
}
public bool Contains(T val)
{
for (int i = front; i < back; i++)
{
if (EqualityComparer<T>.Default.Equals(queue[i], val))
{
return true;
}
}
return false;
}
public T? Peek()
{
return back < front ? default(T) : queue[front];
}
public bool isEmpty()
{
return back <= front;
}
}
}
```