c语言字符串的入队出队代码
时间: 2024-09-22 15:05:16 浏览: 33
平衡二叉树实现代码
在 C 语言中,由于标准库并未直接提供队列数据结构的实现,我们通常会手动创建一个队列结构并使用数组来存储元素。这里是一个简单的链式队列的入队(enqueue)和出队(dequeue)操作示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 队列节点结构体
typedef struct Node {
char data;
struct Node* next;
} Node;
// 初始化空队列
Node* createQueue() {
return NULL;
}
// 入队(enqueue)
void enqueue(Node** front, char data) {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("Memory allocation failed.\n");
return;
}
newNode->data = data;
newNode->next = NULL;
// 如果队列为空,front指向新节点
if (*front == NULL) {
*front = newNode;
} else {
// 否则,将新节点添加到队尾
Node* current = *front;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
// 出队(dequeue)
char dequeue(Node** front) {
if (*front == NULL) {
printf("Queue is empty.\n");
return '\0'; // 返回空字符表示队列已空
}
// 获取当前队头元素
char data = (*front)->data;
Node* temp = *front;
*front = (*front)->next; // 更新front指针
// 如果队列只剩下一个元素,释放temp
if (*front == NULL) {
free(temp);
}
return data;
}
int main() {
Node* queue = createQueue();
// 示例入队
enqueue(&queue, 'A');
enqueue(&queue, 'B');
enqueue(&queue, 'C');
// 示例出队
printf("Dequeued element: %c\n", dequeue(&queue));
printf("Dequeued element: %c\n", dequeue(&queue));
return 0;
}
```
阅读全文