链队列的入队和出队,编译出错,不知错那?
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}Node,*Pnode;
typedef struct{
Pnode *front;
Pnode *rear;
}Queue;
void init_queue(Queue *q);
void traverse(Queue *q);
void in_queue(Queue *q,int val);
void main()
{
Queue a;
init_queue(&a);
in_queue(&a,1);
in_queue(&a,2);
traverse(&a);
}
void init_queue(Queue *q)
{
q->front=q->rear=(Pnode)malloc(sizeof(Node));
q->front->next=NULL;
}
void in_queue(Queue *q,int val)
{
Pnode p=(Pnode)malloc(sizeof(Node));
p->next=NULL;
p->data=val;
q->rear->next=p;
q->rear=p;
}
void traverse(Queue *q)
{
Pnode p=q->front;
while(p->next)
{
p=p->next;
printf("%d->",p->data);
}
printf("NULL");
}
帮帮吧,找了半天。。。唉