成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列淺析

開發(fā) 后端 算法
C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列是什么概念呢?C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列是如何實現(xiàn)的呢?那么本文就向你介紹這方面的內(nèi)容。

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

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列實現(xiàn)的接口如下:

  1. public interface IQueen﹤T﹥  
  2. {  
  3.     int Length();  
  4.     bool IsEmpty();  
  5.     bool IsFull();  
  6.     void Clear();  
  7.     void IN(T items);  
  8.     T Out();  
  9.     T GetFrontItem();  

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列實現(xiàn)的原理與代碼如下:

  1. public class JQueen﹤T﹥ : IQueen﹤T﹥  
  2. {  
  3.     private int size;  
  4.     private T[] item;  
  5.     private int front;  
  6.     private int back;  
  7.  
  8.     public JQueen()  
  9.         : this(100)  
  10.     {  
  11.         size = 100;  
  12.         item = new T[100];  
  13.         front = back = -1;  
  14.     }  
  15.  
  16.     public JQueen(int length)  
  17.     {  
  18.         size = length;  
  19.         item = new T[length];  
  20.         front = back = -1;  
  21.     }  
  22.  
  23.     public T this[int index]  
  24.     {  
  25.         get { return item[index]; }  
  26.         set { item[index] = value; }  
  27.     }  
  28.  
  29.     public int Front  
  30.     {  
  31.         get { return front; }  
  32.         set { front = value; }              
  33.     }  
  34.  
  35.     public int Back  
  36.     {  
  37.         get { return back; }  
  38.         set { back = value; }  
  39.     }  
  40.  
  41.     public int MaxLength  
  42.     {  
  43.         get { return size; }  
  44.         set { size = value; }  
  45.     }          
  46.  
  47.     public int Length()  
  48.     {  
  49.         return (back - front + size) % size;  
  50.     }  
  51.  
  52.     public bool IsEmpty()  
  53.     {  
  54.         return (front == back);  
  55.     }  
  56.  
  57.     public bool IsFull()  
  58.     {  
  59.         return ((back + 1) % size == front);  
  60.     }  
  61.  
  62.     public void Clear()  
  63.     {  
  64.         front = back = -1;  
  65.     }  
  66.  
  67.     public void IN(T items)  
  68.     {  
  69.         if (IsFull())  
  70.         {  
  71.             throw new ArgumentOutOfRangeException("RangeException",
  72.  "Queen RangeException: queen is full");  
  73.         }  
  74.         item[++back] = items;  
  75.     }  
  76.  
  77.     public T Out()  
  78.     {  
  79.         T tmp = default(T);  
  80.         if (IsEmpty())  
  81.         {  
  82.             throw new ArgumentOutOfRangeException("RangeException"
  83. "Queen RangeException: queen is empty");  
  84.         }  
  85.         tmp = item[++front];  
  86.         return tmp;  
  87.     }  
  88.  
  89.     public T GetFrontItem()  
  90.     {  
  91.         if (IsEmpty())  
  92.         {  
  93.             throw new ArgumentOutOfRangeException("RangeException"
  94. "Queen RangeException: queen is empty");  
  95.         }  
  96.         return item[front + 1];  
  97.     }  
  98.  

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列的測試隊列代碼:

  1. public class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.         try 
  6.         {  
  7.             JQueen﹤string﹥ JQ = new JQueen﹤string﹥();  
  8.             Console.WriteLine(JQ.IsEmpty());  //是否為空  
  9.             Console.WriteLine(JQ.IsFull());   //是否滿隊  
  10.             Console.WriteLine(JQ.MaxLength);  //初始化時隊列的長度  
  11.             Console.WriteLine(JQ.Length());     //隊列元素長度  
  12.             Console.WriteLine(JQ.Front);      //隊頭位置  
  13.             Console.WriteLine(JQ.Back);       //隊尾位置  
  14.             JQ.IN("A");  //插入元素  
  15.             JQ.IN("B");  
  16.             JQ.IN("C");  
  17.             JQ.IN("D");  
  18.             Console.WriteLine(JQ.GetFrontItem());   //隊頭元素  
  19.             Console.WriteLine("------元素出隊后隊頭元素-------");  
  20.             JQ.Out();  //出A  
  21.             JQ.Out();   
  22.             Console.WriteLine(JQ.GetFrontItem());   //出隊二個元素后隊頭元素  
  23.             Console.ReadLine();  
  24.         }  
  25.         catch (Exception ex)  
  26.         {  
  27.             Console.WriteLine(ex.Message);   //異常  
  28.             Console.ReadLine();  
  29.         }  
  30.     }  

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列程序運行結(jié)果如下:

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列程序運行結(jié)果

C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列相關(guān)的內(nèi)容就向你介紹到這里,希望通過C#數(shù)據(jù)結(jié)構(gòu)與算法之隊列的介紹使你對C#數(shù)據(jù)結(jié)構(gòu)與算法有所了解。

【編輯推薦】

  1. C#二叉樹遍歷算法實現(xiàn)淺析
  2. C#算法之約瑟夫環(huán)算法淺析
  3. C#數(shù)據(jù)結(jié)構(gòu)與算法之線性表淺析
  4. C#數(shù)據(jù)結(jié)構(gòu)與算法之順序表淺析
  5. C#數(shù)據(jù)結(jié)構(gòu)與算法之構(gòu)造線性表的類淺析
責(zé)任編輯:仲衡 來源: 博客園
相關(guān)推薦

2009-08-11 14:51:11

C#數(shù)據(jù)結(jié)構(gòu)與算法

2009-08-11 14:30:32

C#數(shù)據(jù)結(jié)構(gòu)與算法

2009-08-11 14:14:42

C#數(shù)據(jù)結(jié)構(gòu)與算法

2009-08-11 14:36:17

C#數(shù)據(jù)結(jié)構(gòu)與算法線性表

2009-08-03 17:38:12

排序算法C#數(shù)據(jù)結(jié)構(gòu)

2021-03-09 06:30:32

JAVA數(shù)據(jù)結(jié)構(gòu)算法

2009-08-11 09:19:52

C#選擇排序C#算法

2021-07-16 07:57:34

Python數(shù)據(jù)結(jié)構(gòu)

2009-08-12 18:35:17

C#數(shù)據(jù)結(jié)構(gòu)

2020-10-30 09:56:59

Trie樹之美

2022-09-21 07:57:33

二叉搜索樹排序二叉樹

2022-09-26 07:56:53

AVL算法二叉樹

2020-10-21 14:57:04

數(shù)據(jù)結(jié)構(gòu)算法圖形

2020-12-31 05:31:01

數(shù)據(jù)結(jié)構(gòu)算法

2020-12-17 10:12:33

數(shù)據(jù)結(jié)構(gòu)算法隊列

2023-03-08 08:03:09

數(shù)據(jù)結(jié)構(gòu)算法歸并排序

2023-11-12 21:49:10

Redis數(shù)據(jù)庫

2011-04-11 11:23:17

隊列數(shù)據(jù)結(jié)構(gòu)

2011-04-11 12:48:36

隊列數(shù)據(jù)結(jié)構(gòu)C++

2020-10-20 08:14:08

算法與數(shù)據(jù)結(jié)構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费观看成人鲁鲁鲁鲁鲁视频 | 99精品免费在线观看 | 成人精品在线观看 | 久久久久久久久久久久91 | 日本欧美国产在线 | 99久久精品国产一区二区三区 | 亚洲综合一区二区三区 | 国产精品区二区三区日本 | 亚洲一区网站 | 欧美啪啪网站 | 中文字幕乱码一区二区三区 | 我要看免费一级毛片 | 亚洲综合无码一区二区 | 国产91久久久久久久免费 | 在线观看免费av片 | 日韩欧美三级电影在线观看 | 国产偷自视频区视频 | 国产精品电影在线观看 | 免费成人高清在线视频 | 欧美黄在线观看 | 亚洲欧美在线观看 | 日韩欧美在线观看一区 | 99国内精品久久久久久久 | 瑟瑟免费视频 | 亚洲成人精品在线观看 | 国产欧美一区二区精品忘忧草 | 欧美日韩国产一区二区三区 | 婷婷一级片 | 国产精品久久久久无码av | 在线看免费| 一区二区精品 | 国产一区二区观看 | 91精品国产一区二区三区 | 日本在线观看视频 | 欧美国产日韩在线观看 | 91精品国产综合久久婷婷香蕉 | 国产欧美一区二区在线观看 | 在线国产一区二区 | 欧美激情亚洲 | 国产精品18久久久久久久 | 国产精品欧美精品 |