117.info
人生若只如初见

c语言中怎么获得队列长度

在C语言中,可以通过以下方法获得队列的长度:

  1. 使用链表表示队列:创建一个计数器变量,每次入队和出队操作时,相应地增加或减少计数器的值。队列的长度即为计数器的值。

示例代码:

typedef struct Node {
    int data;
    struct Node* next;
} Node;

typedef struct Queue {
    Node* front;
    Node* rear;
    int size;
} Queue;

// 初始化队列
void initQueue(Queue* queue) {
    queue->front = NULL;
    queue->rear = NULL;
    queue->size = 0;
}

// 获取队列长度
int getQueueLength(Queue* queue) {
    return queue->size;
}

// 入队操作
void enqueue(Queue* queue, int data) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->data = https://www.yisu.com/ask/data;>next = NULL;

    if (queue->front == NULL) {
        queue->front = newNode;
        queue->rear = newNode;
    } else {
        queue->rear->next = newNode;
        queue->rear = newNode;
    }
    
    queue->size++;
}

// 出队操作
int dequeue(Queue* queue) {
    if (queue->front == NULL) {
        printf("Queue is empty.\n");
        return -1;
    }

    Node* temp = queue->front;
    int data = https://www.yisu.com/ask/temp->data;

    queue->front = queue->front->next;
    free(temp);

    queue->size--;

    return data;
}
  1. 使用数组表示队列:创建一个计数器变量,每次入队和出队操作时,相应地增加或减少计数器的值。队列的长度即为计数器的值。

示例代码:

#define MAX_SIZE 10

typedef struct Queue {
    int data[MAX_SIZE];
    int front;
    int rear;
    int size;
} Queue;

// 初始化队列
void initQueue(Queue* queue) {
    queue->front = 0;
    queue->rear = 0;
    queue->size = 0;
}

// 获取队列长度
int getQueueLength(Queue* queue) {
    return queue->size;
}

// 入队操作
void enqueue(Queue* queue, int data) {
    if (queue->size == MAX_SIZE) {
        printf("Queue is full.\n");
        return;
    }

    queue->data[queue->rear] = data;
    queue->rear = (queue->rear + 1) % MAX_SIZE;
    queue->size++;
}

// 出队操作
int dequeue(Queue* queue) {
    if (queue->size == 0) {
        printf("Queue is empty.\n");
        return -1;
    }

    int data = https://www.yisu.com/ask/queue->data[queue->front];
    queue->front = (queue->front + 1) % MAX_SIZE;
    queue->size--;

    return data;
}

以上是两种常见的实现队列的方法,在这两种方法中,通过维护一个计数器变量,可以方便地获得队列的长度。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe4a1AzsLAwBWBFI.html

推荐文章

  • C语言while的用法是什么

    C语言中的while语句用于实现循环结构,它的基本语法如下:
    while (条件表达式)
    { // 循环体语句
    } 执行过程如下: 先计算条件表达式的值。
    ...

  • c语言中begin的用法是什么

    在C语言中,begin并不是一个关键字或特定用法。它可能是您对其他语言中begin的误解或错误理解。需要更多的上下文信息来解释您的问题。或者,您可能是指C语言中的...

  • c语言中loop的用法是什么

    在C语言中,循环(loop)是一种重复执行一段代码块的结构。循环结构使得程序可以多次执行同一段代码,直到满足某个条件才停止执行。
    C语言中有三种常见的循...

  • c语言程序怎么输出图片

    在C语言中,可以使用图形库来输出图片。常用的图形库有Graphics.h、OpenCV等。
    下面以Graphics.h为例,演示如何使用C语言输出图片: 首先,需要安装支持Gra...

  • weblogic控制台无法启动怎么解决

    如果WebLogic控制台无法启动,可以尝试以下解决方法: 检查WebLogic服务器配置文件是否正确:确保配置文件中的参数、路径等设置正确。可以尝试重新配置文件,然后...

  • MFC中afxmessagebox的用法是什么

    MFC中的AFXMessageBox是一个用于显示消息框的函数。它的用法如下: 首先,包含头文件afxwin.h。 在函数中调用AFXMessageBox函数,可以传递以下参数: LPCTSTR lp...

  • mfc列表框怎么添加int数

    您可以使用AddString函数将int数转换为字符串后添加到MFC列表框中。以下是一个示例代码:
    CListBox listBox;
    int num = 123;
    CString str;
    ...

  • weblogic启动非常慢怎么解决

    WebLogic启动缓慢可能是由于以下原因造成的: 配置问题:检查WebLogic的配置文件是否正确配置,并确保配置的参数和资源适合当前的环境。可以尝试使用更适合的配置...