#include<iostream>
using namespace std;
#define SIZE 10
class SeqQueue
{
public:
SeqQueue()
{
m_data = new int[SIZE];
m_head = m_rear = 0;
}
~SeqQueue()
{
if(m_data != NULL)
{
delete []m_data;
m_data = NULL;
}
}
void InQueue(int v)
{
if(!IsFull())
{
m_data[m_rear%SIZE] = v;
m_rear = (m_rear+1)%SIZE;
}
}
void OutQueue()
{
if(!IsEmpty())
m_head = (++m_head )%SIZE;
}
bool IsEmpty(){return m_head == m_rear ? true : false;}
bool IsFull(){return (m_rear+1)%SIZE == m_head ? true : false;}
void Print()
{
for(int i = m_head;i !=m_rear;)
{
cout<<m_data[i]<<" ";
i = (i+1)%SIZE;
}
cout<<endl;
}
int Length()
{
return (m_rear - m_head + SIZE)%SIZE;
}
private:
int *m_data;
int m_head;
int m_rear;
};
数据结构之C++实现顺序队列(SeqQueue)(无主函数)
最新推荐文章于 2024-01-03 21:15:38 发布