不使用库实现队列的基本操作
来源:互联网 发布:捕鱼游戏源码 编辑:程序博客网 时间:2024/05/14 12:08
template<typenameT>
structNode
{public:
Node(constT&d)
:_data(0)
, _next(NULL)
, _pre(NULL)
{ }
T* _data;
Node<T>* _next;
Node<T>* _pre;
};
template<typenameT>
classQueue //先进先出,
{
public:
Queue()
:_tail(NULL)
, _head(NULL)
, _size(0)
{ }
voidPush(constT&n)
{
if(_size == 0)
{
_head = _tail = _ByeNode(n);
}
else
{
Node<T> *temp = _ByeNode(n);
_tail->_next = temp;
temp->_pre = _tail;
_tail = _tail->_next;
}
_size++;
}
voidPop() //移除一个元素,删除队头
{
if(_size == 0)
{
return;
}
elseif(_size = 1)
{
delete_head;
_head =NULL;
_tail =NULL;
}
else
{
_head =_head->_next;
delete_head->_pre;
}
_size--;
}
T& Front() //返回第一个插入的元素,即队头
{
return_head;
}
T& Back() //返回最后被插入的元素,即队尾
{
return_tail;
}
boolEmpty() //队列为空时,返回true
{
if(_size == 0)
{
returntrue;
}
else
{
returnfalse;
}
}
size_tSize() //队列中元素个数
{
return_size;
}
Node<T> * _ByeNode(constT&n)
{
returnnewNode<T>(n);
}
protected:
Node<T>* _tail;
Node<T>* _head;
size_t_size;
};
0 0
- 不使用库实现队列的基本操作
- 不使用库实现栈的基本操作
- 队列基本操作的实现
- c实现队列的基本操作
- C++队列实现的基本操作
- 栈和队列的基本操作实现
- C#实现队列的基本操作
- 用单链表的基本操作实现链队列
- 循环队列的基本操作实现
- 单链队列的基本操作实现
- 顺序队列的基本操作实现c++
- 链式队列的基本操作实现c++
- 队列的基本操作(用链表实现)
- 实现循环队列的基本操作
- 数据结构-队列的基本操作实现
- 数据结构-循环队列的基本实现操作
- 链式队列的基本操作与实现
- 队列的基本操作及实现
- Selenium WebDriver 中鼠标和键盘事件分析及扩展
- spring-boot-data-redis线程池配置
- RecyclerView简易加载更多
- OSI七层模型含义
- 关于bootstrap的modal弹出层嵌套子Modal所引发的血案
- 不使用库实现队列的基本操作
- CardView的介绍
- redis —— 第一篇 开始入手
- Java元注解
- 14.8.1 Enabling File Formats
- 使用HTTP头去绕过WAF
- 集合的toString()方法源码解析
- Struts 2中注解result type为json类型的小示例
- java中容器Vectort用add添加对象是对象引用的问题