数据结构---队列实现
来源:互联网 发布:身份证借去开淘宝店 编辑:程序博客网 时间:2024/05/16 03:06
栈是后进先出(先进后出),队列是先进先出(后进后出)。
我实现的是一个循环队列,当数组大小不够的时候,自动扩充大小。
废话不多说,看代码:
MyQueue.h
#pragma oncetemplate<typename T>class MyQueue{private:int m_head;int m_tail;int m_arrSize;int m_count;T* m_QueueArray;public:MyQueue();~MyQueue(void);bool isEmpty();bool pushBack(T item);T pop();//弹出最前一个,并且返回弹出的元素T top();int getCount();};template<typename T>MyQueue<T>::MyQueue( ){this->m_tail=-1;//尾元素索引地址this->m_head=-1;//首元素索引地址前一位this->m_count=0;this->m_arrSize=2;this->m_QueueArray=new T[m_arrSize];}template<typename T>MyQueue<T>::~MyQueue( void ){delete[] m_QueueArray;}template<typename T>T MyQueue<T>::top(){int first=(m_head+1)%m_arrSize;return m_QueueArray[first];}template<typename T>bool MyQueue<T>::pushBack( T item ){//当满了之后,需要申请更大的空间if (m_count==m_arrSize){int newSize=m_arrSize*2;T* newArr=new T[newSize];int pos=0;T temp;while(!isEmpty()){newArr[pos]=pop();pos++;}m_count=pos;m_head=-1;m_arrSize=newSize;m_tail=m_count-1;delete[] m_QueueArray;this->m_QueueArray=newArr;}m_tail=(m_tail+1)%m_arrSize;m_QueueArray[m_tail]=item;m_count++;return true;}template<typename T>bool MyQueue<T>::isEmpty(){return m_count==0;}//弹出最前面一个元素template<typename T>T MyQueue<T>::pop(){m_count--;int first=(m_head+1)%m_arrSize;T t=m_QueueArray[first];m_head=first;return t;}template<typename T>int MyQueue<T>::getCount(){return m_count;}
测试代码
#include <iostream>#include "MyQueue.h"using namespace std;struct Item{int key;int count;Item(int _key,int _count){key=_key;count=_count;}Item(){key=0;count=0;}};int main(){MyQueue<Item> itemQueue=MyQueue<Item>();int i=30;while (i){Item item=Item(i,i);itemQueue.pushBack(item);i--;}itemQueue.pop();itemQueue.pop();itemQueue.pushBack(Item(90,90));itemQueue.pushBack(Item(91,91));Item item;while(!itemQueue.isEmpty()){Item item=itemQueue.pop();cout<<item.key<<endl;}system("pause");}
- 数据结构 队列的实现
- 用链表实现队列数据结构
- 数据结构:队列的实现
- 【数据结构】 队列的实现
- 数据结构---队列实现
- 数据结构:队列的实现
- C数据结构实现队列
- 队列数据结构Java实现
- 数据结构实现之队列
- 数据结构:JavaScript实现队列
- java实现队列数据结构
- C++实现数据结构-队列
- 数据结构 清华大学 队列 实现
- 数据结构-Java实现队列
- 数据结构---队列(数组实现)
- 《C++实现数据结构》:队列
- Python实现队列数据结构
- 数据结构-用链表实现队列
- 奇艺QSV文件格式简单分析
- 离散数学复习笔记
- 封装PHP mail函数发送HTML邮件并使用中文发件人且自定义发件人邮箱地址
- grttimeofday和xtime的定时精度
- SQL Server内部的内存管理
- 数据结构---队列实现
- 检验字段值是否符合规则
- SQLMAP参数中文解说
- Windows Server 2003 SP2 企业版 ISO 下载 629M
- 深入浅出URL编码
- 好几台机子跑 puppet 出错,郁闷啊
- IOS中的sqlite数据库的使用
- java web开发中乱码的一些体会
- 学习