【数据结构】 Queue 的简单实现
public class XQueue<T> { /// <summary> /// 第一个元素 /// </summary> private static XQueueItem<T> _top; /// <summary> /// 最后一个元素 /// </summary> private static XQueueItem<T> _last; /// <summary> /// 长度 /// </summary> private int _length; /// <summary> /// 容量 /// </summary> /// <returns></returns> public int Count() { return _length; } /// <summary> /// 入队 /// </summary> /// <param name="t"></param> public void Enqueue(T t) { var item = new XQueueItem<T> { Item = t }; if (_top == null) { _last = _top = item; } else { _last.Next = item; item.Prev = _last; } _length++; } /// <summary> /// 出队 /// </summary> /// <returns></returns> public T DeQueue() { if (_length == 0) { throw new Exception("队列为空"); } T t = _last.Item; _last = _last.Prev; return t; } internal class XQueueItem<T> { /// <summary> /// 当前元素 /// </summary> public T Item; /// <summary> /// 下一个元素 /// </summary> public XQueueItem<T> Next; /// <summary> /// 上一个元素 /// </summary> public XQueueItem<T> Prev; } }