赞
踩
该程序包含了置空,判断是否为空,入队,出队,取对头元素等几个基本操作;
- #include <stdio.h>
- #include <stdlib.h> //malooc需要的头文件;
- #define size 100
- typedef struct
- {
- int data[size];
- int rear;
- int front;
- int count;
- }cirqueue;
- cirqueue *q;
-
- void initqueue() //置队空;
- {
- q=(cirqueue *)malloc(sizeof(cirqueue)); //在局外定义一个全局变量的指针,然后给他分配空间,就可以全局使用了;
- q->front=q->rear=0; //对头和队尾下表为0;
- q->count=0; //元素为空;
- }
-
- int queueempty() //判断队是否为空;
- {
- return q->count==0;
- }
-
- int queuefull()
- {
- return q->count==size;
- }
-
- int enquque(int x) //入队
- {
- if(queuefull())
- {
- puts("队满");return 0;
- }
- q->data[q->rear]=x;
- q->rear=(q->rear+1)%size; //循环队列的主要因素
- q->count++; //记得每次入队要加1
- return 1;
- }
-
- int queuefront(int *z) //取对头元素;此处z为指针是为了能够传递出去;
- {
- if(queueempty())
- {
- puts("队空");return 0;
- }
- *z=q->data[q->front];
- return 1;
- }
-
- int dequque(int *y) //出队
- {
- if(queueempty())
- {
- puts("队空");return 0;
- }
- *y=q->data[q->front];
- q->front=(q->front+1)%size; //循环队列的主要因素
- q->count--; //记得每次入队要减1
- return 1;
- }
-
- void main()
- {
- int x=3,y,z;
- initqueue();
- printf("是否为空:%d\n",queueempty());
- printf("是否为满:%d\n",queuefull());
- printf("入队是否成功:%d\n",enquque(x));
- printf("取队头是否成功:%d\n",queuefront(&z));
- printf("对头元素为:%d\n",z);
- printf("出队是否成功:%d\n",dequque(&y));
- printf("出队元素为:%d\n",y);
- }
各位兄弟,如果这篇文章对你有那么一点点的帮助的话,就给我一点鼓励点个赞吧,兄弟我在这里谢谢大家啦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。