程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 數據結構(C#):隊列(1)

數據結構(C#):隊列(1)

編輯:關於C語言

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

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

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

代碼:

/*
* 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();
     }
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved