实现用c实现链表队列的实现
#include <stdio.h>
#include <stdlib.h>
typedef struct Line {
char data;
struct LineNode* next;
}LineNode, *QLineNode;
typedef struct {
QLineNode front;
QLineNode rear;
}QueenLink;
QueenLink* InitLine(QueenLink* L) {
L->front =L->rear = (QLineNode)malloc(sizeof(LineNode));
if (!L->front)
exit(0);
L->front->next = NULL;
return L;
}
int IsEmpty(QueenLink* L) {
if (L->front == L->rear) {
return 1;
}
else
return 0;
}
QueenLink* EnLink(QueenLink* L, char c) {
QLineNode p = (QLineNode)malloc(sizeof(LineNode));
if (!p) {
exit(0);
}
p->data = c;
p->next = NULL;
L->rear->next = p;
L->rear = p;
return L;
}
char DeLink(QueenLink* L) {
if (IsEmpty(L)) {
printf("Link is empty");
return;
}
else {
QLineNode p = (QLineNode)malloc(sizeof(LineNode));
p = L->front->next;
L->front = L->front->next;
char c = p->data;
free(p);
return c;
}
}