Ecco una classe per aiutare le persone a implementare facilmente questo:
public class StackQueue<T>
{
private LinkedList<T> linkedList = new LinkedList<T>();
public void Push(T obj)
{
this.linkedList.AddFirst(obj);
}
public void Enqueue(T obj)
{
this.linkedList.AddFirst(obj);
}
public T Pop()
{
var obj = this.linkedList.First.Value;
this.linkedList.RemoveFirst();
return obj;
}
public T Dequeue()
{
var obj = this.linkedList.Last.Value;
this.linkedList.RemoveLast();
return obj;
}
public T PeekStack()
{
return this.linkedList.First.Value;
}
public T PeekQueue()
{
return this.linkedList.Last.Value;
}
public int Count
{
get
{
return this.linkedList.Count;
}
}
}
fonte
2012-10-10 06:37:09
Con tutto il rispetto, questo non sembra rispondere alla sua domanda. – StriplingWarrior
Il collegamento ha una classe che definisce ciò che l'OP stava cercando. L'esempio fornito in questa risposta non lo dimostra in realtà. –
StriplingWarrior, non ho idea di cosa tu stia parlando. Il poster richiede un contenitore generico esistente che si comporta come una pila o una coda. Tale contenitore è chiamato "deque" e ho fornito un link al codice sorgente per un'implementazione di tale. Esattamente quale parte della domanda non ha avuto risposta? –