顺序队列

来源:互联网 发布:阿里云mysql远程连接 编辑:程序博客网 时间:2024/06/03 12:52
一、实验目的1、熟练掌握队列的结构特点,掌握队列的顺序存储和链式存储结构和实现。2、学会使用队列解决实际问题。二、实验内容1、自己确定结点的具体数据类型和问题规模:分别建立一个链队列,实现队列的入队和出队操作。 
// 顺序队列.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;const int QueueSize=100;template <typename DT>class CirQueue{public:CirQueue(){front=rear=QueueSize-1;}void EnQueue(DT x);DT DeQueue();DT GetQueue();private:DT data[QueueSize];int front,rear;};template <typename DT>void CirQueue<DT>::EnQueue(DT x){if((rear+1)%QueueSize==front)cout<<"上溢"; rear=(rear+1)%QueueSize; data[rear]=x;}template <typename DT>DT CirQueue<DT>::DeQueue(){if(rear==front)cout<<"下溢";front=(front+1)%QueueSize;return data[front];}template <typename DT>DT CirQueue<DT>::GetQueue() {if(rear==front)cout<<"下溢"; DT i=(front+1)%QueueSize; return data[i];}int main(){ CirQueue<int> c;  int a[5]={88,72,98,69,84};  for (int i=0;i<5;i++){c.EnQueue(a[i]);}  cout<<"第一个元素是:"<<c.GetQueue()<<endl;  cout<<"输出所有的元素:"<<endl;  for (int j=0;j<5;j++){cout<<c.DeQueue()<<" ";}return 0;}

原创粉丝点击