第七周项目4-队列数字(2)

来源:互联网 发布:环保部水质检测数据 编辑:程序博客网 时间:2024/06/11 18:03
  1. /* 
  2. *Copyright(c)2017,烟台大学计算机学院 
  3. *All right reserved. 
  4. *文件名:sk.cpp sqqueue.h sqqueue.cpp 
  5. *作者:盛凯 
  6. *完成日期:2017年10月25日 
  7. *版本号:v1.0 
  8. * 
  9. *问题描述:队列数组 
  10. *输入描述:整数组 
  11. *程序输出:见运行结果 
  12. */
  13. #include <stdio.h>
  14. #include <malloc.h>

    #include "liqueue.h"

    #define N 10

    int main()

    {

       int i, a;

       LiQueue *qu[N]; //定义队列指针数组

       for (i=0; i<N; i++)

           InitQueue(qu[i]);       //初始化队列


       //为队列中加入值

       printf("输入若干正整数,以0结束: ");

       scanf("%d", &a);

       while(a)

       {

           enQueue(qu[a%10], a);

           scanf("%d", &a);

       }


       //输出各个队列

       printf("按个位数整理到各个队列中后,各队列出队的结果是: \n");

       for (i=0; i<N; i++)

       {

           printf("qu[%d]: ", i);

           while(!QueueEmpty(qu[i]))

           {

               deQueue(qu[i], a);

               printf("%d ", a);

           }

           printf("\n");

       }


       //销毁各个队列

       for (i=0; i<N; i++)

           DestroyQueue(qu[i]);

       return 0;

    }

  15. 程序运行结果如图所示:


  16. 反思总结:

  17. 此种算法比第一种算法要更加简洁,没有用switch语句而是直接取余判断进的队列,可见我们还是要不断的改进,选择尽可能简单明了的算法。