队列是利用链表节点实现的:
#include<stdio.h>
#include<stdlib.h>
#define M 8
#define List_INIT_SIZE 100
#define List_INC 10
int ever[M];
typedef struct QNode{
int data;
struct QNode *next;
}QNode,*QNodeptr;
typedef struct{
QNodeptr front;
QNodeptr rear;
int ListSize;
}List;
void InitList(List &L){
L.front=L.rear=(QNodeptr)malloc(sizeof(QNode));
if(!L.front ){
exit(0);
}else{
L.front->next=NULL;
printf("队列初始化成功\n");
}
}
void pop(List &L,int &e){
if(L.front==L.rear){
exit(0);
}
QNodeptr p=L.front->next;
e=L.front->next->data;
L.front->next=L.front->next->next;
if(p==L.rear){
L.rear=L.front;
}
free(p);
}
void push(List &L,int i){
QNodeptr p=(QNodeptr)malloc(sizeof(QNode));
if(!p){
exit(0);
}
p->data=i;
p->next=NULL;
L.rear->next=p;
L.rear=p;
printf("%d进队列\n",i);
}
int Empty(List L){