//链队列
#include "stdio.h"
#include "stdlib.h"
typedef struct snode{
int data;
struct snode* next;
}snode,*linkq;
typedef struct{
linkq rear,front;
}linkqueue;
//插入元素
int insertn(linkqueue* q,int e)
{
//如果是第一次插入堆front要做特殊处理
linkq s = (linkq)malloc(sizeof(snode));
s->data = e;
s->next = NULL;
q->rear->next = s;
q->rear = s;
return 0;
}
//删除 元素
int deletn(linkqueue* q)
{
if(q->front==q->rear)
{
printf("the queue is empty!\n");
return 0;
}
linkq d;
d = q->front->next;
q->front->next = q->front->next->next;
free(d);
return 0;
}
//打印队列中的元素
int printq(linkqueue* q)
{
linkq h;
h = q->front;
h = h->next;
while(h!=NULL)
{
printf("%d ",h->data);
h = h->next;
}
printf("\n");
return 0;
}
int main()
{
linkq head;
linkqueue *q;
head = (linkq)malloc(sizeof(snode));
head->next = NULL;
q->front = head;
q->rear = head;
insertn(q,14);
insertn(q,15);
insertn(q,16);
insertn(q,17);
printq(q);
deletn(q);
printq(q);
return 0;
}