循环队列的基本操作之代码实现_legend
2014-06-10 15:18
525 查看
#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;
}
相关文章推荐
- 循环队列基本操作的实现(Java)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 顺序队列(循环队列)基本操作实现 C语言
- 循环队列的基本操作实现
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 实现循环队列的基本操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 队列的基本操作概念及各种实现方式的代码
- 循环队列的定义、入队、出队等操作 C++代码实现
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构-循环队列的基本实现操作