c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言队列入队

更新时间:2023-09-24

队列入队的C语言实现

队列是一种常用的数据结构,它遵循先进先出(FIFO)的原则。入队是指将新元素添加到队列的末尾。在C语言中,可以使用数组来实现队列。下面将为您展示一个简单的C语言代码示例,实现队列的入队操作。

#include 
#define SIZE 5

int queue[SIZE];
int front = -1;
int rear = -1;

void enqueue(int item) {
    if (rear == SIZE - 1) {
        printf("队列已满,无法入队。\n");
    } else {
        if (front == -1) {
            front = 0;
        }
        rear++;
        queue[rear] = item;
        printf("%d 已成功入队。\n", item);
    }
}

在这段代码中,我们定义了一个固定大小为SIZE的队列数组,并初始化了队列的首尾指针(front和rear)为-1。enqueue函数用于将新的元素item入队。如果rear指针达到了队列的最大长度SIZE-1,表示队列已满,无法再进行入队操作。否则,我们将front指针初始化为0(表示队列非空),然后将rear指针向后移动一位,将新元素item存入队列的末尾。同时,打印出入队成功的信息。

使用示例:

int main() {
    enqueue(10);
    enqueue(20);
    enqueue(30);
    enqueue(40);
    enqueue(50);
    enqueue(60); // 增加一个元素,将触发队列已满提示
    return 0;
}

运行上述代码示例,输出结果如下:

10 已成功入队。
20 已成功入队。
30 已成功入队。
40 已成功入队。
50 已成功入队。
队列已满,无法入队。

代码解析

上述代码非常简单,主要包含了一个enqueue函数和一个main函数。enqueue函数通过判断rear指针的位置来确定队列是否已满。如果队列未满,将新元素存入队列,并更新rear指针的位置;如果队列已满,则输出相应的提示信息。示例中的main函数演示了入队操作的使用方法。

从数组的角度来看,队列的第一个元素被存储在数组的第一个位置,而rear指针则指向数组的最后一个元素。当我们入队一个新元素时,rear指针向后移动一位,并将新元素存入数组中rear指针所指向的位置。入队操作的时间复杂度为O(1)。

总结

队列的入队操作是一种常见而重要的操作,用于将新元素添加到队列的末尾。通过使用C语言的数组,我们可以灵活地实现队列的入队操作,并且可以根据具体需求进行相应的扩展和优化。

本文中的示例代码展示了一个基本的C语言实现,您可以在此基础上进行进一步的开发和改进。希望本文对您理解队列的入队操作有所帮助。