首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

双端行列(deque)链表实现

2013-03-06 
双端队列(deque)链表实现我们知道栈和队列都是受限的线性表,栈是只能尾部添加,删除元素.队列是只能尾部添

双端队列(deque)链表实现

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

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

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

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

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

};

热点排行