溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#數據結構與隊列怎么實現

發布時間:2021-12-03 09:27:07 來源:億速云 閱讀:171 作者:iii 欄目:編程語言

這篇文章主要講解了“C#數據結構與隊列怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#數據結構與隊列怎么實現”吧!

C#數據結構與算法之隊列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的后端(back)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。這也就是我們平常經常用說到的先進先出法則(FIFO),隊列這種法則,在中國好久以前就開始運用了,例如糧倉管理官員,在沒掌握這種法則前,倉庫底部的糧食都因時間太久而壞掉了,后來有聰明人士在糧倉二邊開個門,一邊進倉一邊出倉,這樣管理就方便多了。隊列中沒有元素時,稱為空隊列。

C#數據結構與算法之隊列實現的接口如下:

public interface IQueen﹤T﹥  {      int Length();      bool IsEmpty();      bool IsFull();      void Clear();      void IN(T items);      T Out();      T GetFrontItem();  }

C#數據結構與算法之隊列實現的原理與代碼如下:

public class JQueen﹤T﹥ : IQueen﹤T﹥  {      private int size;      private T[] item;      private int front;      private int back;       public JQueen()          : this(100)      {          size = 100;          item = new T[100];          front = back = -1;      }       public JQueen(int length)      {          size = length;          item = new T[length];          front = back = -1;      }       public T this[int index]      {          get { return item[index]; }          set { item[index] = value; }      }       public int Front      {          get { return front; }          set { front = value; }                  }       public int Back      {          get { return back; }          set { back = value; }      }       public int MaxLength      {          get { return size; }          set { size = value; }      }               public int Length()      {          return (back - front + size) % size;      }       public bool IsEmpty()      {          return (front == back);      }       public bool IsFull()      {          return ((back + 1) % size == front);      }       public void Clear()      {          front = back = -1;      }       public void IN(T items)      {          if (IsFull())          {              throw new ArgumentOutOfRangeException("RangeException",          "Queen RangeException: queen is full");          }          item[++back] = items;      }       public T Out()      {          T tmp = default(T);          if (IsEmpty())          {              throw new ArgumentOutOfRangeException("RangeException",                  "Queen RangeException: queen is empty");          }          tmp = item[++front];          return tmp;      }       public T GetFrontItem()      {          if (IsEmpty())          {              throw new ArgumentOutOfRangeException("RangeException",               "Queen RangeException: queen is empty");          }          return item[front + 1];      }   }

C#數據結構與算法之隊列的測試隊列代碼:

public class Program  {      static void Main(string[] args)      {          try         {              JQueen﹤string﹥ JQ = new JQueen﹤string﹥();              Console.WriteLine(JQ.IsEmpty());  //是否為空              Console.WriteLine(JQ.IsFull());   //是否滿隊              Console.WriteLine(JQ.MaxLength);  //初始化時隊列的長度              Console.WriteLine(JQ.Length());     //隊列元素長度              Console.WriteLine(JQ.Front);      //隊頭位置              Console.WriteLine(JQ.Back);       //隊尾位置              JQ.IN("A");  //插入元素              JQ.IN("B");              JQ.IN("C");              JQ.IN("D");              Console.WriteLine(JQ.GetFrontItem());   //隊頭元素              Console.WriteLine("------元素出隊后隊頭元素-------");              JQ.Out();  //出A              JQ.Out();               Console.WriteLine(JQ.GetFrontItem());   //出隊二個元素后隊頭元素              Console.ReadLine();          }          catch (Exception ex)          {              Console.WriteLine(ex.Message);   //異常              Console.ReadLine();          }      }  }

C#數據結構與算法之隊列程序運行結果如下:

C#數據結構與隊列怎么實現

感謝各位的閱讀,以上就是“C#數據結構與隊列怎么實現”的內容了,經過本文的學習后,相信大家對C#數據結構與隊列怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女