#include<stdio.h>
#include<stdlib.h>
#define MAX 10
struct queue
{
int *queueMemory;
int frontPos;
int tailPos;
};
struct queue* lpQueue()
{
struct queue* lpQueue = (struct queue*)malloc(sizeof(struct queue));
lpQueue->queueMemory = (int*)malloc(sizeof(int)*MAX);
lpQueue->frontPos = lpQueue->tailPos = -1;
return lpQueue;
}
void push(struct queue* lpQueue, int data)
{
if(lpQueue->tailPos == MAX-1)
{
printf("队满无法入队!\n");
return;
}
lpQueue->tailPos ++;
lpQueue->queueMemory[lpQueue->tailPos] = data;
}
int pop(struct queue* lpQueue)
{
if(lpQueue->frontPos == lpQueue->tailPos)
{
printf("队为NULL,无法出队!\n");
return -1;
}
return lpQueue->queueMemory[++lpQueue->frontPos];
}
int empty(struct queue* lpQueue)
{
return lpQueue->frontPos != lpQueue->tailPos;
}
int main()
{
struct queue* lpQueue = createQueue();
for(int i = 0; i<10;i++)
{
push(lpQueue, i);
}
while(empty(lpQueue))
{
printf("%d\t",pop(lpQueue));
}
system("pause");
return 0;
}