標籤:
【資料結構】 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; } }
【資料結構】 Queue 的簡單實現