双端队列(deque)链表实现

来源:互联网 发布:apache是什么 编辑:程序博客网 时间:2024/04/30 13:48

我们知道栈和队列都是受限的线性表,

栈是只能尾部添加,删除元素.

队列是只能尾部添加元素,头部删除元素.

那假如想要头部和尾部都可以添加和删除元素呢? 于是就出现了双端队列.双端队列主要功能如下:

void EnQueHead(T val);//头部添加元素

void EnQueEnd(T val); //尾部添加元素

T DeQueHead();//头部删除元素

T DeQueEnd(); //尾部删除元素

 

 

 

双端队列单链表实现

单链表定义见:http://blog.csdn.net/weiwenhp/article/details/8634469

 

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

};

原创粉丝点击