/// <summary>
    /// 将两个 Steque 连接。
    /// </summary>
    /// <param name="s1">第一个 Steque </param>
    /// <param name="s2">第二个 Steque (将被删除)</param>
    /// <returns></returns>
    public static Steque <TItem> Catenation(Steque <TItem> s1, Steque <TItem> s2)
    {
        if (s1.IsEmpty())
        {
            s1._first = s2._first;
            s1._last  = s2._last;
            s1._count = s2._count;
        }
        else
        {
            s1._last.Next = s2._first;
            s1._count    += s2._count;
        }

        return(s1);
    }
        Steque <Item> steque; // 代表队列头部

        /// <summary>
        /// 创建一条空的双向队列。
        /// </summary>
        public Deque()
        {
            this.stack  = new Stack <Item>();
            this.steque = new Steque <Item>();
        }
        Steque <Item> steque; // 代表队列头部

        /// <summary>
        /// 创建一条空的双向队列。
        /// </summary>
        public Deque()
        {
            stack  = new Stack <Item>();
            steque = new Steque <Item>();
        }
Пример #4
0
    private readonly Steque <TItem> _steque; // 代表队列头部

    /// <summary>
    /// 创建一条空的双向队列。
    /// </summary>
    public Deque()
    {
        _stack  = new Stack <TItem>();
        _steque = new Steque <TItem>();
    }