没有多少花哨的东西,也不知道自己写的到底是有多少符合现在的“编码规范”,一切都是在学习之中,望看到的前辈能够指出不足。
Cirque.h
#pragma once
#include <iostream>
const int INIT_SIZE = 10;
class Cirque{
private:
int size;
int front;
int rear;
int* base;
public:
Cirque();
Cirque(int initsize);
void Clear();
int Enque(int data);
int Deque();
bool IsFull();
bool IsEmpty();
~Cirque();
};
Cirque.cpp
#include "cirqueue.h"
using std::cout;
using std::endl;
Cirque::Cirque(){
base = new int[INIT_SIZE];
if(!base){
exit(-1);
}
front = rear = 0;
size = INIT_SIZE;
}
Cirque::Cirque(int initsize){
base = new int[initsize];
if(!base){
exit(-1);
}
front = rear = 0;
size = initsize;
}
void Cirque::Clear(){
front = rear = 0;
}
bool Cirque::IsEmpty(){
if (front == rear) {
return true;
}else
{
return false;
}
}
bool Cirque::IsFull(){
if ((rear + 1) % size == front) {
return true;
}
else{
return false;
}
}
int Cirque::Enque(int data){
if (!IsFull()) {
base[rear] = data;
rear = (rear + 1) % size;
return 0;
}
else{
return -1;
}
}
int Cirque::Deque(){
if (!IsEmpty()) {
int da = base[front];
front = (front + 1) % size;
return da;
}
else{
exit(-1);
}
}
Cirque::~Cirque(){
delete base;
base = NULL;
}
main.cpp
#include <iostream>
#include "cirqueue.h"
using std::cout;
using std::endl;
int main(int argc, const char * argv[])
{
Cirque c1;
Cirque c2;
c1.Enque(3);
c2.Enque(4);
cout << c1.Deque() << endl;
cout << c2.Deque() << endl;
return 0;
}