#include<stdio.h>
#include<stdlib.h>
int main()
struct Node
{
int data;
struct Node *next;
};
struct Node *createNode(int data)
{
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
struct queue
{
int sizeQueze;
struct Node* frontNode;
struct Node* tailNode;
};
struct queue* createQueue()
{
struct Queue* lpqueue = (struct Queue*)malloc(sizeof(struct lpQueue));
lpQueue->sizeQueue = 0;
lpQueue->frontNode = lpQueue->tailNode = NULL;
return lpQueue;
}
int size(struct queue* lpQueue)
{
return lpQueue->sizeQueue;
}
int empty(struct queue* lpQueue)
{
return lpQueue->sizeQueue == 0;
}
void push(struct queue* lpQueue, int data)
{
struct Node*newNode = createNode(data);
if(lpQueue->sizeQueue == 0)
{
lpQueue->frontNode = newNode;
lpQueue->tailNode = newNode;
}
else
{
lpQueue->tailNode->next = newNode;
lpQueue->tailNode = newNode;
}
lpQueue->sizeQueue++;
}
void pop(struct queue* lpQueue)
{
if(lpQueue->sizeQueue == 0)
{
printf("无法出队!\n");
return;
}
struct Node* nextNode = lpQueue->frontNode->next;
free(lpQueue->frontNode);
lpQueue->frontNode = nextNode;
lpQueue->sizeQueue--;
}
int front(struct queue* lpQueue)
{
if(lpQueue->sizeQueue == 0)
{
printf("队列为NULL,无法出队!");
system("pause");
exit(0);
}
return lpQueue->frontNode->data;
}
int main()
{
struct queue*lpQueue = createQueue();
for(int i = 0;i<=10;i++)
{
push(lpQueue.i);
}
while(empty(lpQueue))
{
printf("%d\t",front(lpQueue));
pop(lpQueue);
}
print("\n");
system("pause");
return 0;
}