隊列的特點是先進先出,如同日常生活中的排隊。隊列有加入隊尾,從隊頭刪除元素,取得隊尾元素 ,取得隊頭元素,取得隊列長度,判斷隊列是否為空等操作。
隊列也可以可以用順序表、鏈表實現,但隊列最好不要用順序表實現,因為元素加入隊列和刪除元素 中的一種操作總會引起全部元素的移動,效率極低(循環隊列除外)。
隊列的實現非常簡單,下面用前面介紹的單鏈表實現。
代碼:
/*
* 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();
}
}
}