当前位置:   article > 正文

c语言循环队列的基本操作_循环队列基本操作c语言

循环队列基本操作c语言

该程序包含了置空,判断是否为空,入队,出队,取对头元素等几个基本操作;

  1. #include <stdio.h>
  2. #include <stdlib.h> //malooc需要的头文件;
  3. #define size 100
  4. typedef struct
  5. {
  6. int data[size];
  7. int rear;
  8. int front;
  9. int count;
  10. }cirqueue;
  11. cirqueue *q;
  12. void initqueue() //置队空;
  13. {
  14. q=(cirqueue *)malloc(sizeof(cirqueue)); //在局外定义一个全局变量的指针,然后给他分配空间,就可以全局使用了;
  15. q->front=q->rear=0; //对头和队尾下表为0
  16. q->count=0; //元素为空;
  17. }
  18. int queueempty() //判断队是否为空;
  19. {
  20. return q->count==0;
  21. }
  22. int queuefull()
  23. {
  24. return q->count==size;
  25. }
  26. int enquque(int x) //入队
  27. {
  28. if(queuefull())
  29. {
  30. puts("队满");return 0;
  31. }
  32. q->data[q->rear]=x;
  33. q->rear=(q->rear+1)%size; //循环队列的主要因素
  34. q->count++; //记得每次入队要加1
  35. return 1;
  36. }
  37. int queuefront(int *z) //取对头元素;此处z为指针是为了能够传递出去;
  38. {
  39. if(queueempty())
  40. {
  41. puts("队空");return 0;
  42. }
  43. *z=q->data[q->front];
  44. return 1;
  45. }
  46. int dequque(int *y) //出队
  47. {
  48. if(queueempty())
  49. {
  50. puts("队空");return 0;
  51. }
  52. *y=q->data[q->front];
  53. q->front=(q->front+1)%size; //循环队列的主要因素
  54. q->count--; //记得每次入队要减1
  55. return 1;
  56. }
  57. void main()
  58. {
  59. int x=3,y,z;
  60. initqueue();
  61. printf("是否为空:%d\n",queueempty());
  62. printf("是否为满:%d\n",queuefull());
  63. printf("入队是否成功:%d\n",enquque(x));
  64. printf("取队头是否成功:%d\n",queuefront(&z));
  65. printf("对头元素为:%d\n",z);
  66. printf("出队是否成功:%d\n",dequque(&y));
  67. printf("出队元素为:%d\n",y);
  68. }

各位兄弟,如果这篇文章对你有那么一点点的帮助的话,就给我一点鼓励点个赞吧,兄弟我在这里谢谢大家啦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/646409
推荐阅读
相关标签
  

闽ICP备14008679号