数据结构|顺序队列的实现(实验3.3)

一、实验目的

1、   熟练掌队列的结构特点,掌握队列的顺序存储和实现。

2、      学会使用队列解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模,建立一个顺序队列,实现队列的入队和出队操作。


源代码如下:

#include<iostream>  
using namespace std;  
const int Queuesize = 100;  
template<class T>  
class Cirqueue{  
    public:  
        Cirqueue(){ front = rear = Queuesize-1; }
		~Cirqueue(){};
        void EnQueue(T x); 
        T DeQueue();  
        T GetQueue();  
        void PrintQueue(); 
        int Empty() {front==rear?return 1:return 0;} 
    private:  
        T data[Queuesize]; 
        int front,rear; 
};  
template <class T>  
void Cirqueue<T>::EnQueue(T x)  
{  
    if((rear+1)%Queuesize==front) throw"上溢";  
    rear=(rear+1)%Queuesize;  
    data[rear]=x;  
}  
  
template <class T>  
T Cirqueue<T>::DeQueue()  
{  
    if(rear==front) throw"下溢";  
    front=(front+1)%Queuesize;  
    return data[front];  
}  
  
template <class T>  
T Cirqueue<T>::GetQueue()  
{   
    if(rear==front) throw"下溢";  
   int i=(front+1)%Queuesize;  
    return data[i];  
}  
  
template <class T>  
void Cirqueue<T>::PrintQueue()  
{  
    int p = (front+1) % Queuesize;    
    while(p != rear){    
        cout<<data[p]<<" ";    
        p = (p+1) % Queuesize;    
    }    
    cout<<data[p]<<endl;  
}  
  
void main()  
{  
    Cirqueue<int>s;  
    cout<<"将元素 1,2,3,4 依次进队 "<<endl;  
    for(int i=1;i<=4;i++)  {  s.EnQueue(i); }  
    cout<<"进队结果为:"<<endl;  
    s.PrintQueue();  
    cout<<"出队一个元素: "<<s.DeQueue()<<endl;
	cout<<"出队结果为:"<<endl;  
    s.PrintQueue();  
    cout<<"队头元素为:"<<s.GetQueue()<<endl;  
}  
运行结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值