zoukankan      html  css  js  c++  java
  • C++循环队列基本操作

     1 #include <iostream>
     2 #define MAXSIZE 50
     3 #define QUEUEELEMENTTYPE int
     4 using namespace std;
     5 
     6 struct SeqQueue
     7 {
     8     QUEUEELEMENTTYPE element[MAXSIZE];
     9     int front;
    10     int rear;
    11 };
    12 
    13 void InitQueue(SeqQueue * Q)
    14 {
    15     Q->front = Q->rear = 0;
    16 }
    17 
    18 int EnterQueue(SeqQueue * Q , QUEUEELEMENTTYPE x)
    19 {
    20     if((Q->rear+1)%MAXSIZE == Q->front)
    21         return false;
    22     Q->element[Q->rear] = x;
    23     Q->rear = (Q->rear+1)%MAXSIZE;
    24     return true;
    25 }
    26 
    27 int DeleteQueue(SeqQueue * Q , QUEUEELEMENTTYPE &x)
    28 {
    29     if(Q->front == Q->rear)
    30         return false;
    31     x = Q->element[Q->front];
    32     Q->front = (Q->front+1)%MAXSIZE;
    33     return true;
    34 }
    35 
    36 int IsEmpty(SeqQueue * Q)
    37 {
    38     if(Q->front==Q->rear)
    39         return true;
    40     return false;
    41 }
    42 
    43 int IsFull(SeqQueue * Q)
    44 {
    45     if((Q->rear+1)%MAXSIZE == Q->front)
    46         return true;
    47     return false;
    48 }
    49 
    50 void PrintQueue(SeqQueue * Q)
    51 {
    52     if(Q->rear-Q->front>=0)
    53     {
    54         for(int k=Q->front;k<Q->rear;k++)
    55             cout << Q->element[k] << " ";
    56     }
    57     else
    58     {
    59         for(int i=Q->front;i<MAXSIZE;i++)
    60             cout << Q->element[i] << " ";
    61         for(int j=0;j<Q->rear;j++)
    62             cout << Q->element[j] << " ";
    63     }    
    64     cout << endl;
    65 }
    66 
    67 int main()
    68 {
    69     SeqQueue *Q=new SeqQueue;
    70     InitQueue(Q);
    71     cout << "before insert datas is empty " << IsEmpty(Q) << endl;
    72     for(int i=0;i<10;i++)
    73         EnterQueue(Q,i);
    74     cout << "after insert datas is empty " << IsEmpty(Q) << endl;
    75     cout << "after insert 10 datas isfull " << IsFull(Q) << endl;
    76     PrintQueue(Q);
    77     int x=-1;
    78 
    79     for(int j=0;j<5;j++)
    80     {
    81         DeleteQueue(Q,x);
    82         cout << x << endl;
    83     }
    84     PrintQueue(Q);
    85     for(int k=0;k<60;k++)
    86         EnterQueue(Q,k);
    87     cout << "after insert 60 datas isfull " << IsFull(Q) << endl;
    88     PrintQueue(Q);
    89     return 0;
    90 }
  • 相关阅读:
    公交/地铁出行测试用例点
    python第一次作业
    jmeter之jsonpath断言
    jsonhandle与jsonpath extractor(json值提取插件)
    jmeter 插件之Dummy samper-----------------moke服务
    jmeter插件安装
    JMeter组件之Test Fragment
    jmeter连接MySQL构造大量并发测试数据
    某购物网站大量用户登录脚本
    jenkins+ant+jmeter接口测试自动化平台(带发送附件测试报告)
  • 原文地址:https://www.cnblogs.com/xxdfly/p/4388444.html
Copyright © 2011-2022 走看看