迴圈佇列的基本操作之程式碼實現_legend
阿新 • • 發佈:2019-01-28
#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;
}