資料結構(C#):隊列

來源:互聯網
上載者:User

隊列的特點是先進先出,如同日常生活中的排隊。隊列有加入隊尾,從隊頭刪除元素,取得隊尾元素 ,取得隊頭元素,取得隊列長度,判斷隊列是否為空白等操作。

隊列也可以可以用順序表、鏈表實現,但隊列最好不要用順序表實現,因為元素排入佇列和刪除元素 中的一種操作總會引起全部元素的移動,效率極低(迴圈隊列除外)。

隊列的實現非常簡單,下面用前面介紹的單鏈表實現。

代碼:

/*
* File   :  Queue.cs
* Author  :  Zhenxing Zhou
* Date   :  2008-12-07
* Blog   :  http://www.xianfen.net/
*/
namespace Xianfen.Net.DataStructure
{
   public class Queue<T>
   {
     protected SingleLinkedList<T> m_List;

     public bool IsEmpty
     {
       get { return m_List.IsEmpty; }
     }

     public int Count
     {
       get { return m_List.Count; }
     }

     public Queue()
     {
       m_List = new SingleLinkedList<T>();
     }

     public Queue(T t)
     {
       m_List = new SingleLinkedList<T>(t);
     }

     public T DeQueue()
     {
       T t = m_List.GetTail();
       m_List.RemoveTail();

       return t;
     }

     public void EnQueue(T t)
     {
       m_List.AddHead(t);
     }

     public T GetFront()
     {
       return m_List.GetTail();
     }

     public T GetRear()
     {
       return m_List.GetHead();
     }
   }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.