2、代码实现链式队列,输入数字入队,输入字符出队,用c语言生成
时间: 2024-12-13 17:27:43 浏览: 10
在 C 语言中,我们可以使用结构体(struct)和指针来实现一个简单的链式队列,同时支持数字和字符的入队和出队操作。下面是一个基本的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义节点结构体
typedef struct Node {
char data; // 存储数据域
struct Node* next; // 指向下一个节点的指针
} QueueNode;
// 创建队列的头结点
QueueNode* createQueue() {
return (QueueNode*)malloc(sizeof(QueueNode));
}
// 入队操作 - 数字
void enqueueNum(QueueNode** front, int num) {
QueueNode* newNode = createQueue();
newNode->data = num;
newNode->next = *front;
*front = newNode;
}
// 入队操作 - 字符
void enqueueChar(QueueNode** front, char c) {
QueueNode* newNode = createQueue();
newNode->data = c;
newNode->next = *front;
*front = newNode;
}
// 出队操作
char dequeue(QueueNode** front) {
if (*front == NULL) {
printf("Queue is empty.\n");
return '\0'; // 返回空字符表示错误
}
QueueNode* temp = *front;
char data = temp->data;
*front = (*front)->next;
free(temp); // 释放已处理的节点内存
return data;
}
int main() {
QueueNode* front = createQueue(); // 初始化队列
// 入队示例(数字和字符)
enqueueNum(&front, 10);
enqueueChar(&front, 'a');
// 出队示例
char data = dequeue(&front);
printf("Dequeued number: %d\n", data); // 输出:Dequeued number: 10
data = dequeue(&front);
printf("Dequeued character: '%c'\n", data); // 输出:Dequeued character: a
return 0;
}
```
这个程序首先定义了一个队列节点结构,并提供创建队列、入队数字和字符以及出队的操作。在 `main` 函数里展示了如何使用这些函数。
阅读全文