博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环队列
阅读量:5322 次
发布时间:2019-06-14

本文共 1266 字,大约阅读时间需要 4 分钟。

#include<iostream>

#include<cstdlib>

#include<ctime>

using namespace std ;

#define MAXSIZE 100

#define  OK true

#define  ERROR false

#define  LEN 5

typedef bool Status ;

typedef int QElemType ;

typedef struct

{

 QElemType data[MAXSIZE];

 int front ;

 int rear ;

}SqQueue;

Status initQueue(SqQueue * Q)

{

 Q->front = Q->rear = 0 ;

 return OK ;

}

int getQLength(SqQueue Q)

{

  return (Q.rear - Q.front + MAXSIZE) % MAXSIZE ;

}

Status enQueue(SqQueue* Q , QElemType e )

{

 if((Q->rear+1)%MAXSIZE == Q->front)

  return ERROR ;

 Q->data[Q->rear] = e ;

 Q->rear = (Q->rear+1+MAXSIZE)%MAXSIZE;

 return OK ;

}

Status deQueue(SqQueue* Q , QElemType* e )

{

  if(Q->front == Q->rear)

   return ERROR ;

  *e = Q->data[Q->front] ;

  Q->front = (Q->front + 1 + MAXSIZE) % MAXSIZE ;

  return OK ;

}

void printQ(SqQueue Q)

{

 cout<<"打印:"<<endl;

 int pfront = Q.front ;

 while( pfront != Q.rear)

 {

  cout<<Q.data[pfront]<<" ";

  pfront = (pfront + 1 + MAXSIZE) % MAXSIZE ;

 }

 cout<<endl;

}

int main()

{

    SqQueue Q ;

    initQueue(&Q);

 QElemType e ;

 srand((unsigned)time(0));

 for(int i = 0 ; i < LEN ;i ++)

 {

  e = rand() % 10 + 1 ;

  enQueue(&Q,e);

 }

    printQ(Q);

 cout<<"删除一个元素";

 deQueue(&Q,&e);

 cout<<" "<<e<<" 后,";

 printQ(Q);

 system("pause");

 return 0 ;

}

转载于:https://www.cnblogs.com/dot-dot-123/archive/2013/05/29/3106045.html

你可能感兴趣的文章
Spring面试题
查看>>
C语言栈的实现
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
使用命令创建数据库和表
查看>>
【转】redo与undo
查看>>
安卓当中的线程和每秒刷一次
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
标识符
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
内存地址对齐
查看>>
创新课程管理系统数据库设计心得
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
[转载] redis 的两种持久化方式及原理
查看>>