• 数组实现队列


    /*
         用数组实现队列,front指向对头,rear指向队尾。初始时  front等于rear等于0
         进队发生在队尾,然后rear+1;
         出队发生在对头,然后front+1;
        
         front                                   rear  
           a    b  c  d   e   f    g   h  i   j    k
        
         如上所示,若要进行进队操作,插入 l  
         front                                          rear  
           a    b  c  d   e   f    g   h  i   j    k     l
           
         若要出队操作
               front                                          rear  
           a    b     c     d   e   f    g   h  i   j    k     l
        把 a 进行输出,然后将front+1,指向了 b 位置。
        因为是用数组实现,所以不能对单独对 a 进行释放操作,但我们可以将front+1
        再把该队列忽略掉 a ,这只是人为忽略,但a还是存在。这样我们就可以队列看出
              front                                          rear  
                b     c     d   e   f    g   h  i   j    k     l
          
        
    */
    #include<stdio.h>
    #include<stdlib.h>
    int input(int *,int len);//入队
    void output(int *,int len); //出队

    //实现这两个函数
    int input(int *p,int len)
    {
       //len为数组的长度
       int num=0;//用于接收多少个数字
       int num2=0;
       //int front=0;//队头
       int rear=0;//队尾
       printf("请问您要输入多少个数字: ");
       scanf("%d",&num);
       while(num<0||num>len)
       {
             system("cls");
             printf("你输入的数量不符合,在0-%d内,请重新输入:",len);
             scanf("%d",&num);
       }
       for(rear;rear<num;rear++)
       {
              system("cls");
              printf("您要输入的数字:");
              scanf("%d",&num2);
              p[rear]=num2;     
       }
       if(rear==num)
       {
              system("cls");
           printf("输入完成 ");
           printf("一共输入了第%d个数: ",rear);    
       }
       return num;
    }
    void output(int *p,int len)
    {
        int front=0;//队头
        int num=1;//用于循环,并且和len比较
        for(num;num<=len;num++)
        {
            //system("cls");
            printf("出队列的是:%d ",p[front]);//出队
            front++;    
        }
    }
    int main()
    {
        int n1=0;//用于接收input函数的返回值
        int data[10];
        n1=input(data,10);
        output(data,n1);
        //delete data;
        //system("cls");
        n1=input(data,10);
        output(data,n1);
        return 0;
     }

  • 相关阅读:
    浅谈localStorage和sessionStorage的相关用法
    v-for中:key的作用总结
    textarea的placeholder无效问题解决
    6月10日
    6月9日
    6月8日
    6月7日
    6月6日
    10月5日
    6月4日
  • 原文地址:https://www.cnblogs.com/chenwjia/p/6389287.html
Copyright © 2020-2023  润新知