当前位置:编程学习 > 网站相关 >>

双端队列(deque)链表实现

我们知道栈和队列都是受限的线性表,
栈是只能尾部添加,删除元素.
队列是只能尾部添加元素,头部删除元素.
那假如想要头部和尾部都可以添加和删除元素呢? 于是就出现了双端队列.双端队列主要功能如下:
void EnQueHead(T val);//头部添加元素
void EnQueEnd(T val); //尾部添加元素
T DeQueHead();//头部删除元素
T DeQueEnd(); //尾部删除元素
 
 
 
双端队列单链表实现
 
 
#include "LinkList.h"
template<class T>
class DQue
{
private:
LinkList<T> m_pList;
public:
void EnQueHead(T val){m_pList.InsertAt(0,val);}
void EnQueEnd(T val){m_pList.Add(val);}
T GetEnd(){return m_pList.GetTailVal();}
T GetHead(){return m_pList.GetHeadVal();}
T DeQueHead(){
T val = m_pList.GetHeadVal();
m_pList.RemoveAt(0);
return val;
}
T DeQueEnd(){
T val = m_pList.GetTailVal();
m_pList.Remove();
return val;
}
int Size(){ return m_pList.Size();}
void Clear() { m_pList.Clear(); }
};
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,