• 循环队列


    #include<stdio.h>
    #include<stdlib.h>
    #define MAX_SIZE 100
    typedef struct{
            int data[MAX_SIZE];
     int front;
     int rear;
    }SeqQueue;

    void InitQueue(SeqQueue *Q){//初始化队列
     if(!Q){printf("内存分配错误 "); return;}
     Q->front=0;
     Q->rear=0;
     printf("初始化完毕 ");
    }

    void InQueue(SeqQueue *Q,int e){//进队列
        int pos=(Q->rear+1)%MAX_SIZE;
     if(!Q){printf("内存分配错误 "); return;}
        if(pos==Q->front){
     printf("内存已经满了 ");
     return;
     }
     Q->data[Q->rear]=e;
     Q->rear=pos;
     printf("%d已经入队 ",e);
    }

    void OutQueue(SeqQueue *Q){//出队列
       int e;
       if(!Q){printf("内存分配错误 "); return;}
       if(Q->front==Q->rear){printf("队列为空 ");return;}
       e=Q->data[Q->front];
       Q->front=(Q->front+1)%MAX_SIZE;
       printf("%d已经出队 ",e);
    }

    void IsEmpty(SeqQueue *Q){//是否为空
     if(!Q){printf("内存分配错误 "); return;} 
     if(Q->rear==Q->front){printf("队列为空 ");}
     printf("队列不为空 ");
     }
     

     void LengthQueue(SeqQueue *Q){//队列长度
          int length;
       length=((Q->rear-Q->front+MAX_SIZE)%MAX_SIZE);
       printf("队列的长度为:%d ",length);
     }
     void TraversalQueue(SeqQueue *Q){//遍历队列
      int i;
      int p=Q->front;
       if(!Q){printf("内存分配错误 "); return;}
       if(Q->front==Q->rear){printf("队列为空 ");return;}
       for(i=Q->front;i<Q->rear;i++){
        printf("%d ",Q->data[p]);
        p++;
       }
       printf(" ");
     }

     int main(void){
      SeqQueue* Q=(SeqQueue*)malloc(sizeof(SeqQueue));
      int n,a;
      int y=1;
      while(y){
       printf("*********************** ");
        printf("--1.初始化队列-- ");
        printf("--2.进队-- ");
        printf("--3.出队-- ");
        printf("--4.遍历队-- ");
        printf("--5.求队长-- ");
           printf("--6.队是否为空-- ");
        printf("--7.退出-- ");
        printf("请输入你要进行的操作: ");
        scanf("%d",&n);
         switch(n){
        case 1: InitQueue(Q);   break;
        case 2: printf("请输入你要进队的数: ");scanf("%d",&a);InQueue(Q,a); break;
        case 3: OutQueue(Q); break;
        case 4: TraversalQueue(Q); break;
        case 5: LengthQueue(Q); break;
        case 6: IsEmpty(Q); break;
        case 7:  y=0;break;
        
        
        
        }
     
     
     
     
      }
     
     
     
     
     
     
     
      return 0;
     }

  • 相关阅读:
    类数组及其转换
    数组去重
    ios UIView
    ios 解决Wkwebview闪烁问题
    ios Https问题
    UUID
    JavaScript4
    JavaScript2
    JavaScript1
    UIScollView
  • 原文地址:https://www.cnblogs.com/wantao/p/7828603.html
Copyright © 2020-2023  润新知