Queue and Stack can be implemented using a linked list very easily. Below is a simple implementation.
public class StackWithLinkedList{ private LinkedList _holder = new LinkedList (); public StackWithLinkedList() { } public void Push(T data) { _holder.AddFirst(data); } public T Pop() { var item = _holder.First; _holder.Remove(_holder.First); return item.Value; } public T Peek() { var item = _holder.First; return item.Value; } public IEnumerable Traversal() { foreach (var elememt in _holder) { yield return elememt; } } public int Count { get { return _holder.Count; } } } public class QueueWithLinkedList { private LinkedList _container = new LinkedList (); public QueueWithLinkedList() { } public void Enqueue(T data) { _container.AddFirst(data); } public T Dequeue() { var item = _container.Last; _container.Remove(_container.Last); return item.Value; } public T Peek() { var item = _container.Last; return item.Value; } public int Count { get { return _container.Count; } } public IEnumerable Iterator { get { foreach (var element in _container) { yield return element; } } } }
Recent Comments