将以下代码用C语言改写 typedef atruct (ElemType gim];int Crontcount;//front是队首指针,count是队列中元肯个教}cqnode; //定义类型标识管 (1)判空:int Eupty(cqnode cq) //eg是cgnode类型的变量 if(oq.countn0)return(1);elsereturn(0))//空队列入队:int EnQueue(cqnode cq,ElemTypex)(if(count--m){cout<<"队满":exit(o);1 cq.q[(cq.front+count)m]=x; //x入队 count+:return(1):) //队列中元素个数增加1,入队成功 出队:ict DelQueue(cqnode cq) [if(count-=0li cout<<队空”;return(0); cout<<出队光素"<cqq[cqfront]<sendl; x=cq.q[cq.front]; cq.front-(cg.front+1)$m; //计算新的从头指针 return(x)
时间: 2024-03-09 16:44:57 浏览: 149
以下是用C语言改写后的代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int q[MAX_SIZE];
int front;
int count;
} cqnode;
// 判空
int Empty(cqnode cq) {
if (cq.count == 0) {
return 1;
} else {
return 0;
}
}
// 入队
int EnQueue(cqnode *cq, int x) {
if (cq->count < MAX_SIZE) {
cq->q[(cq->front + cq->count) % MAX_SIZE] = x;
cq->count++;
return 1;
} else {
printf("队满\n");
exit(0);
}
}
// 出队
int DelQueue(cqnode *cq) {
if (cq->count == 0) {
printf("队空\n");
return 0;
} else {
int x = cq->q[cq->front];
cq->front = (cq->front + 1) % MAX_SIZE;
cq->count--;
return x;
}
}
int main() {
cqnode cq;
cq.front = 0;
cq.count = 0;
// 入队
EnQueue(&cq, 1);
EnQueue(&cq, 2);
EnQueue(&cq, 3);
// 出队
printf("%d\n", DelQueue(&cq));
printf("%d\n", DelQueue(&cq));
printf("%d\n", DelQueue(&cq));
return 0;
}
```
其中,`cqnode`是队列的结构体类型,包含一个数组`q`、一个头指针`front`和一个元素个数`count`。`EnQueue`和`DelQueue`分别是入队和出队的函数,需要传入指向队列结构体的指针作为参数。
阅读全文