#include <stdio.h>
#include <stdlib.h>
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 {
struct Node* front;
struct Node* rear;
int QueueSize;
};
struct Queue* createQueue()
{
struct Queue* queue = (struct Queue *)malloc(sizeof(struct Queue));
queue->front = queue->rear = NULL;
queue->QueueSize = 0;
return queue;
}
int Queue_front(struct Queue* queue)
{
if(queue->QueueSize == 0)
return -1;
else
return queue->front->data;
}
int Queue_rear(struct Queue* queue)
{
if(queue->QueueSize == 0)
return -1;
else
return queue->rear->data;
}
int empty(struct Queue* queue)
{
return queue->QueueSize == 0;
}
void push(struct Queue* queue, int data)
{
struct Node* newNode = createNode(data);
if(queue->QueueSize == 0)
queue->front = newNode;
else
queue->rear->next = newNode;
queue->rear = newNode;
queue->QueueSize++;
}
void pop(struct Queue* queue)
{
if(queue->QueueSize == 0)
return;
struct Node* nextNode = queue->front->next;
free(queue->front);
queue->front = nextNode;
queue->QueueSize--;
}
int main()
{
struct Queue* queue = createQueue();
push(queue, 1);
push(queue, 2);
push(queue, 3);
while(!empty(queue))
{
printf("%d", Queue_front(queue));
pop(queue);
}
printf("\n");
return 0;
}
链式队列C语言实现
最新推荐文章于 2021-10-16 08:07:59 发布