#include <iostream>
using namespace std;
#define MaxSize 20
typedef int qElemType;
class SeQueueType{
public:
qElemType data[MaxSize];
int front;
int rear;
public:
/*初始化,构造函数*/
SeQueueType(){
front=0;
rear=0;/*初始化rear=front=0*/
}
/*队空*/
bool QueueEmpty(){
if(rear==front)
return true;
return false;
}
/*队满*/
bool QueueFull(){
if((rear+1)%MaxSize==front)/*rear的下一个位置时front*/
return true;
return false;
}
/*进队*/
bool en_queue(qElemType elem){
if(QueueFull()) return false;
data[rear]=elem;
rear=(rear+1)%MaxSize;
return true;
}
/*进队以及出队到底是先++,还是先赋值,没有明确规定。
只要进队与出队的顺序是一致的就可以了。
即:均先++,在赋值,或者均是先赋值,然后++
*/
/*出队*/
bool de_queue(qElemType& elem){
if(QueueEmpty()) return false;
elem=data[front];
front=(front+1)%MaxSize;
return true;
}
/*获取队头*/
bool queueFront(qElemType & elem){
if(QueueEmpty()) return false;
elem=data[front];
return true;
}
/*队长*/
int length(){
return (rear-front+MaxSize)%MaxSize;
}
};
int main()
{ SeQueueType seQueue;
seQueue.en_queue(1);
seQueue.en_queue(4);
seQueue.en_queue(3);
seQueue.en_queue(2);
int length;
qElemType elem;
cout<<"length"<<" "<<"elem"<<endl;
length=seQueue.length();
seQueue.queueFront(elem);
cout<<length<<" "<<elem<<endl;
seQueue.de_queue(elem);
seQueue.queueFront(elem);
length=seQueue.length();
cout<<length<<" "<<elem<<endl;
cout << "Hello world!" << endl;
return 0;
}
---------------------------------------------------------
#include <iostream>
using namespace std;
/*循环队列变形,已知front,size来求rear,以及对队列的一些操作*/
#define MaxSize 15
typedef int qElemType;
class QueueType{
public:
qElemType data[MaxSize];
int front;
int size;
public:
/*初始化数据成员,构造函数*/
QueueType(){
front=0;
size=0;
}
/*进队*/
bool en_queue(qElemType elem){
if(size == MaxSize)
return false;
int rear;
rear=(front+size)%MaxSize;
data[rear]=elem;
size++;
return true;
}
/*进队以及出队到底是先++,还是先赋值,没有明确规定。
只要进队与出队的顺序是一致的就可以了。
即:均先++,在赋值,或者均是先赋值,然后++
*/
/*出队*/
bool de_queue(qElemType & elem){
if(size==0) retur false;
elem=data[front];
front=(front+1)%MaxSize;
size--;
return true;
}
int length(){
return size;
}
};
int main()
{
cout << "Hello world!" << endl;
return 0;
}
using namespace std;
#define MaxSize 20
typedef int qElemType;
class SeQueueType{
public:
qElemType data[MaxSize];
int front;
int rear;
public:
/*初始化,构造函数*/
SeQueueType(){
front=0;
rear=0;/*初始化rear=front=0*/
}
/*队空*/
bool QueueEmpty(){
if(rear==front)
return true;
return false;
}
/*队满*/
bool QueueFull(){
if((rear+1)%MaxSize==front)/*rear的下一个位置时front*/
return true;
return false;
}
/*进队*/
bool en_queue(qElemType elem){
if(QueueFull()) return false;
data[rear]=elem;
rear=(rear+1)%MaxSize;
return true;
}
/*进队以及出队到底是先++,还是先赋值,没有明确规定。
只要进队与出队的顺序是一致的就可以了。
即:均先++,在赋值,或者均是先赋值,然后++
*/
/*出队*/
bool de_queue(qElemType& elem){
if(QueueEmpty()) return false;
elem=data[front];
front=(front+1)%MaxSize;
return true;
}
/*获取队头*/
bool queueFront(qElemType & elem){
if(QueueEmpty()) return false;
elem=data[front];
return true;
}
/*队长*/
int length(){
return (rear-front+MaxSize)%MaxSize;
}
};
int main()
{ SeQueueType seQueue;
seQueue.en_queue(1);
seQueue.en_queue(4);
seQueue.en_queue(3);
seQueue.en_queue(2);
int length;
qElemType elem;
cout<<"length"<<" "<<"elem"<<endl;
length=seQueue.length();
seQueue.queueFront(elem);
cout<<length<<" "<<elem<<endl;
seQueue.de_queue(elem);
seQueue.queueFront(elem);
length=seQueue.length();
cout<<length<<" "<<elem<<endl;
cout << "Hello world!" << endl;
return 0;
}
---------------------------------------------------------
#include <iostream>
using namespace std;
/*循环队列变形,已知front,size来求rear,以及对队列的一些操作*/
#define MaxSize 15
typedef int qElemType;
class QueueType{
public:
qElemType data[MaxSize];
int front;
int size;
public:
/*初始化数据成员,构造函数*/
QueueType(){
front=0;
size=0;
}
/*进队*/
bool en_queue(qElemType elem){
if(size == MaxSize)
return false;
int rear;
rear=(front+size)%MaxSize;
data[rear]=elem;
size++;
return true;
}
/*进队以及出队到底是先++,还是先赋值,没有明确规定。
只要进队与出队的顺序是一致的就可以了。
即:均先++,在赋值,或者均是先赋值,然后++
*/
/*出队*/
bool de_queue(qElemType & elem){
if(size==0) retur false;
elem=data[front];
front=(front+1)%MaxSize;
size--;
return true;
}
int length(){
return size;
}
};
int main()
{
cout << "Hello world!" << endl;
return 0;
}