//定义顺序队列
typedef struct{
int data[Maxsize];
int front;
int rear;
} SqQueue;
//初始化队列
void initQueue(SqQueue *qu){
qu->front = qu->rear = 0;
}
//入队
int enQueue(SqQueue &qu, int x){
if((qu.rear+1)%Maxsize==qu.front){
return 0;
}
qu.data[qu.rear] = x;
qu.rear = (qu.rear+1)%Maxsize;
return 1;
}
int main(){
SqQueue qu;
initQueue(&qu);
int status = enQueue(&qu, 1);
return 1;
}
[Error] invalid initialization of non-const reference of type 'SqQueue&' from an rvalue of type 'SqQueue*'
[Note] in passing argument 1 of 'int enQueue(SqQueue&, int)'
&表示引用,所以给enQueue的第一参数传一个结构指针会报错,改为变量本身qu就可以了,引用和指针的作用差不多,不过也有点区别。
参考链接:https://blog.csdn.net/caozixuan98724/article/details/73395598/
#include <stdio.h>
#define Maxsize 3
//定义顺序队列
typedef struct{
int data[Maxsize];
int front;
int rear;
} SqQueue;
//初始化队列
void initQueue(SqQueue *qu){
qu->front = qu->rear = 0;
}
//入队
int enQueue(SqQueue &qu, int x){
if((qu.rear+1)%Maxsize==qu.front){
return 0;
}
qu.data[qu.rear] = x;
qu.rear = (qu.rear+1)%Maxsize;
return 1;
}
int main(){
SqQueue qu;
initQueue(&qu);
int status = enQueue(qu, 1);
//printf("status=%d.\n",status);
return 1;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!