<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      unit zx.core.FixedQueue;
      
      interface
      
      uses
        System.SysUtils, System.Generics.Collections;
      
      type
      
        TFixedQueue<T> = class
        private
          /// <summary>
          /// 一個動態數組,用于存儲隊列元素,動態數組會自動管理內存
          /// </summary>
          FItems: TArray<T>;
      
          /// <summary>
          /// 頭指針,指向隊列的邏輯第一個元素
          /// </summary>
          FFront: Integer;
      
          /// <summary>
          /// 尾指針,指向隊列的邏輯最后一個元素
          /// </summary>
          FRear: Integer;
      
          /// <summary>
          /// 當前隊列中的元素數量
          /// </summary>
          FCount: Integer;
      
          /// <summary>
          /// 隊列的固定容量
          /// </summary>
          FCapacity: Integer;
      
          /// <summary>
          /// 根據邏輯索引獲取元素
          /// </summary>
          function GetItem(Index: Integer): T;
      
          /// <summary>
          /// 根據邏輯索引設置元素
          /// </summary>
          procedure SetItem(Index: Integer; const Value: T);
      
          /// <summary>
          /// 效仿官方的 TQueue
          /// </summary>
          function GetIsEmpty: Boolean; inline;
          function GetIsFull: Boolean; inline;
        public
          constructor Create(Capacity: Integer);
      
          procedure Enqueue(Item: T);
          function Dequeue: T;
          function Peek: T;
      
          property Count: Integer read FCount;
          property Capacity: Integer read FCapacity;
      
          property IsEmpty: Boolean read GetIsEmpty;
          property IsFull: Boolean read GetIsFull;
      
          /// <summary>
          /// 可以根據這個來遍歷,注意 Index 其實是邏輯索引
          /// for var i = 0 to count - 1 ... item[i] 就遍歷了
          /// </summary>
          property Items[Index: Integer]: T read GetItem write SetItem;
        end;
      
      implementation
      
      constructor TFixedQueue<T>.Create(Capacity: Integer);
      begin
        if Capacity <= 0 then
          raise EArgumentOutOfRangeException.Create('容量必須大于0!');
      
        FCapacity := Capacity;
        SetLength(FItems, FCapacity);
        FFront := 0;
        FRear := -1;
        FCount := 0;
      end;
      
      procedure TFixedQueue<T>.Enqueue(Item: T);
      begin
        if FCount = FCapacity then
          raise Exception.Create('隊列已滿,新入隊失敗!');
      
        FRear := (FRear + 1) mod FCapacity;
        FItems[FRear] := Item;
        Inc(FCount);
      end;
      
      function TFixedQueue<T>.Dequeue: T;
      begin
        if FCount = 0 then
          raise Exception.Create('隊列是空,無法出隊!');
      
        Result := FItems[FFront];
        FFront := (FFront + 1) mod FCapacity;
        Dec(FCount);
      end;
      
      function TFixedQueue<T>.Peek: T;
      begin
        if FCount = 0 then
          raise Exception.Create('隊列是空,無法 Peek!');
      
        Result := FItems[FFront];
      end;
      
      function TFixedQueue<T>.GetItem(Index: Integer): T;
      begin
        if (Index < 0) or (Index >= FCount) then
          raise EArgumentOutOfRangeException.Create('隊列索引越界!');
      
        Result := FItems[(FFront + Index) mod FCapacity];
      end;
      
      procedure TFixedQueue<T>.SetItem(Index: Integer; const Value: T);
      begin
        if (Index < 0) or (Index >= FCount) then
          raise EArgumentOutOfRangeException.Create('隊列索引越界!');
      
        FItems[(FFront + Index) mod FCapacity] := Value;
      end;
      
      function TFixedQueue<T>.GetIsEmpty: Boolean;
      begin
        Result := FCount = 0;
      end;
      
      function TFixedQueue<T>.GetIsFull: Boolean;
      begin
        Result := FCount = FCapacity;
      end;
      
      end.
      
      posted on 2024-12-15 11:07  del88  閱讀(21)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产美女自慰在线观看| 欧洲精品码一区二区三区| 亚洲综合无码明星蕉在线视频| 国产一区二区三区美女| 亚洲啪啪精品一区二区的| 久久精品国产熟女亚洲av| 香蕉EEWW99国产精选免费| 女同AV在线播放| аⅴ天堂中文在线网| 蜜臀视频在线观看一区二区| 好深好湿好硬顶到了好爽| 18禁裸乳无遮挡自慰免费动漫| 琼海市| 久久这里都是精品一区| 国产精品老熟女露脸视频| 国产亚洲精品第一综合| 亚洲综合小综合中文字幕| 一区二区三区日本久久九| 久久91精品牛牛| 精品无码人妻| 国产一区二区三区在线观看免费 | 色爱综合激情五月激情| 乐平市| 国产精品一区中文字幕| 亚洲av无码国产在丝袜线观看| 欧洲免费一区二区三区视频| 四虎在线永久免费看精品| 狠狠亚洲色一日本高清色| 欧美成人精品手机在线| 吉林市| 国产精品自拍视频免费看| 亚洲熟妇自偷自拍另欧美| 91精品国产午夜福利| 亚洲一区二区av在线| 极品美女aⅴ在线观看| 高清色本在线www| 亚洲日韩国产精品第一页一区| 国产精品午夜福利合集| 拜泉县| 九九热久久这里全是精品| 欧美性群另类交|