下面的数据结构的程序老是报错,每个函数都报同一个错:
error C2143: syntax error : missing ‘)’ before ‘&’
error C2143: syntax error : missing ‘{‘ before ‘&’
#include<stdio.h>
#define null 0
#define ok 1
#define overflow 0
#define status int
typedef struct qnode
{
int data;
struct qnode *next;
}qnode,*queueptr;
typedef struct
{
queueptr front;
queueptr rear;
}linkqueue;
status initqueue(linkqueue &q)//构造空队列
{
q.front=q.rear=(queueptr)malloc(sizeof(qnode));
if(!q.front) exit(overflow);
q.front->next=null;
return ok;
}
status enqueue(linkqueue &q,int e)//插入数据e
{
qnode *p;
p=(queueptr)malloc(sizeof(qnode));
if(!p)exit(overflow);
p->data=e;
p->next=null;
q.rear->next=p;
q.rear=p;
return ok;
}
status visit(linkqueue &q)//访问队列显示数据
{
qnode *p;
p=q.front->next;
while(p)
{
printf(“%d”,p->data);
p=p->next;
}
return 1;
}
void main()
{
int a;
linkqueue node;
initqueue(*node);
scanf(“%d”,&a);
while(a){
enqueue(*node,a);
scanf(“%d”,&a);
}
visit(*node);
}
>> 本文固定链接: http://www.vcgood.com/archives/2638
status initqueue(linkqueue &q)//构造空队列
status enqueue(linkqueue &q,int e)//插入数据e
status visit(linkqueue &q)//访问队列显示数据
c语言的形参不支持引用!改为指针或用C++编译!
initqueue(*node);
enqueue(*node,a);
visit(*node);
上面对node的调用有错误!
如果用引用就直接写node
如果用指针就写&node // 这里&是取地址操作符