C语言队列实现:随机奇偶数配对输出

本文将介绍如何使用C语言编写一个程序,使用两个队列 q1q2 分别存储计算机随机生成的20个100以内的奇数和偶数,然后每行输出 q1q2 的一个值,即奇数和偶数配对输出,直到任一队列为空为止。

代码实现

以下是完整的C语言代码:c#include <stdio.h>#include <stdlib.h>#include <time.h>

// 定义队列结构体typedef struct Queue { int front, rear, size; unsigned capacity; int* array;} Queue;

// 创建一个队列Queue* createQueue(unsigned capacity) { Queue* queue = (Queue*)malloc(sizeof(Queue)); queue->capacity = capacity; queue->front = queue->size = 0; queue->rear = capacity - 1; queue->array = (int*)malloc(queue->capacity * sizeof(int)); return queue;}

// 队列是否已满int isFull(Queue* queue) { return (queue->size == queue->capacity);}

// 队列是否为空int isEmpty(Queue* queue) { return (queue->size == 0);}

// 入队void enqueue(Queue* queue, int item) { if (isFull(queue)) return; queue->rear = (queue->rear + 1) % queue->capacity; queue->array[queue->rear] = item; queue->size = queue->size + 1;}

// 出队int dequeue(Queue* queue) { if (isEmpty(queue)) return -1; int item = queue->array[queue->front]; queue->front = (queue->front + 1) % queue->capacity; queue->size = queue->size - 1; return item;}

// 随机生成20个100以内的奇数和偶数,并存入队列void generateNumbers(Queue* q1, Queue* q2) { srand(time(NULL)); int i, num; for (i = 0; i < 20; i++) { num = rand() % 100 + 1; if (num % 2 == 0) enqueue(q2, num); else enqueue(q1, num); }}

int main() { Queue* q1 = createQueue(20); Queue* q2 = createQueue(20);

generateNumbers(q1, q2);

while (!isEmpty(q1) && !isEmpty(q2)) {        printf('%d %d

', dequeue(q1), dequeue(q2)); }

free(q1->array);    free(q1);    free(q2->array);    free(q2);

return 0;}

代码说明

  1. 队列结构体定义: 代码首先定义了一个名为 Queue 的结构体,用于表示队列。该结构体包含以下成员: * front: 队首指针 * rear: 队尾指针 * size: 队列当前大小 * capacity: 队列最大容量 * array: 存储队列元素的数组

  2. 队列操作函数: 代码中定义了以下队列操作函数: * createQueue: 创建一个指定容量的队列 * isFull: 判断队列是否已满 * isEmpty: 判断队列是否为空 * enqueue: 入队操作,将元素添加到队尾 * dequeue: 出队操作,从队首移除并返回元素

  3. 生成随机数并存入队列: generateNumbers 函数首先生成20个100以内的随机数,然后根据奇偶性分别存入队列 q1q2

  4. 配对输出: main 函数中,首先生成两个队列 q1q2,然后调用 generateNumbers 函数填充队列。接着使用 while 循环,当两个队列都不为空时,分别从两个队列中取出一个元素并配对输出。

编译运行

将以上代码保存为一个 .c 文件,例如 queue_odd_even.c,然后使用C编译器进行编译:bashgcc queue_odd_even.c -o queue_odd_even

编译成功后,运行可执行文件 queue_odd_even:bash./queue_odd_even

程序将会输出类似以下内容的奇偶数配对结果:

71 23 54...

总结

本文介绍了如何使用C语言队列实现随机奇偶数的配对输出。通过学习本例,你可以更好地理解队列数据结构及其应用。

C语言队列实现:随机奇偶数配对输出

原文地址: https://www.cveoy.top/t/topic/bg6j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录