用c语言编写一个能进行出队,入队操作的链队列
时间: 2024-04-29 21:26:47 浏览: 95
好的,我可以回答这个问题。您可以参考以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
typedef struct {
ListNode *front;
ListNode *rear;
} MyQueue;
MyQueue* createQueue() {
MyQueue *queue = (MyQueue *)malloc(sizeof(MyQueue));
queue->front = NULL;
queue->rear = NULL;
return queue;
}
void enQueue(MyQueue *queue, int item) {
ListNode *newNode = (ListNode *)malloc(sizeof(ListNode));
newNode->val = item;
newNode->next = NULL;
if (queue->rear == NULL) {
queue->front = newNode;
queue->rear = newNode;
} else {
queue->rear->next = newNode;
queue->rear = newNode;
}
}
void deQueue(MyQueue *queue) {
if (queue->front == NULL) {
return;
}
ListNode *node = queue->front;
queue->front = node->next;
if (queue->front == NULL) {
queue->rear = NULL;
}
free(node);
}
int main() {
MyQueue *queue = createQueue();
enQueue(queue, 1);
enQueue(queue, 2);
enQueue(queue, 3);
deQueue(queue);
ListNode *node = queue->front;
while (node != NULL) {
printf("%d ", node->val);
node = node->next;
}
return 0;
}
```
这是一个基于链表实现的队列,可以进行入队和出队操作。
阅读全文