• 顺序队列


      1 #include "iostream"
      2 using namespace std;
      3 
      4 #define MAXLENGTH 20
      5 typedef struct Queue
      6 {
      7     int array[MAXLENGTH];
      8     //first指向将要被删除的元素的下标,tail指向可以被插入元素的位置
      9     int first,tail;
     10 }Queue;
     11 
     12 void initial(Queue *queue)
     13 {
     14     queue->first = 0;
     15     queue->tail = 0;
     16 }
     17 
     18 //入队
     19 bool enq(Queue *queue,int elem)
     20 {
     21     //我的想法
     22 //    if (queue->tail == MAXLENGTH-1)
     23 //    {
     24 //        cout<<"overflow!"<<endl;
     25 //        return false;
     26 //    }
     27     queue->array[queue->tail] = elem;
     28 
     29     if (queue->tail == MAXLENGTH-1)
     30     {
     31         queue->tail = 0;
     32     }
     33     else
     34     {
     35         queue->tail++;
     36     }
     37 
     38     if (queue->tail == queue->first)
     39     {
     40         cout<<"overflow !"<<endl;
     41         return false;
     42     }
     43     return true;
     44 }
     45 //出队
     46 bool deq(Queue *queue)
     47 {
     48     if (queue->tail == queue->first)
     49     {
     50         cout<<"underflow !"<<endl;
     51         return false;
     52     }
     53     else if (queue->first == MAXLENGTH -1)
     54     {
     55         queue->first = 0;
     56     }
     57     else
     58     {
     59         queue->first++;
     60     }
     61     return true;
     62 }
     63 
     64 void print(Queue queue)
     65 {
     66     int i = queue.first;
     67     while (i != queue.tail)
     68     {
     69         cout<<queue.array[i]<<endl;;
     70         i++;
     71     }
     72 }
     73 //判断队列是否为空
     74 bool isempty(Queue queue)
     75 {
     76     return queue.first == queue.tail;
     77 }
     78 
     79 //读取队首元素
     80 bool readfront(Queue queue,int *elem)
     81 {
     82     if (isempty(queue))
     83     {
     84         return false;
     85     }
     86     *elem = queue.array[queue.first];
     87     return true;
     88 }
     89 
     90 
     91 int main()
     92 {
     93     Queue queue;
     94     initial(&queue);
     95 
     96     enq(&queue,1);
     97     enq(&queue,2);
     98     print(queue);
     99     cout<<"------------------------"<<endl;
    100     deq(&queue);
    101     print(queue);
    102 
    103     cout<<"--------------------------"<<endl;
    104     int elem;
    105     if(readfront(queue,&elem))
    106     {
    107         cout<<elem<<endl;
    108     }
    109     return 0;
    110 }

  • 相关阅读:
    链接的热键属性accesskey
    链接目标属性
    HTML添加多媒体或音乐
    HTML中的图像
    DreamweaverCS6
    HTML其他基本格式说明
    HTML页面主体常用设置
    网页设计与开发的过程
    文字排版
    选择器
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3301396.html
Copyright © 2020-2023  润新知