• 【数据结构】 Queue 的简单实现


     【数据结构】 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;
            }
        }
  • 相关阅读:
    移位运算符<<与>>
    在线颜色选择器
    CSS鼠标指针cursor样式
    JavaScript实现自定义右键菜单
    如何去掉ul和li前面的小黑点
    转载:利用本地存储实现记录滚动条的位置
    CSS中样式覆盖优先顺序
    断言类
    MQ发送定时消息
    看代码所学3
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/4644563.html
Copyright © 2020-2023  润新知