queue 结构体

queue 结构体


2024年4月11日发(作者:)

queue 结构体

在C语言中,可以使用结构体来实现队列(queue)数据结构。

一个基本的Queue结构体可以包含以下几个元素:

1. 一个数组用来存储队列元素,例如:int data[MAX_SIZE];

2. 一个整型变量用来表示队列起始位置,例如:int front;

3. 一个整型变量用来表示队列结束位置,例如:int rear。

根据这些元素,我们可以定义一个Queue结构体如下:

```c

#define MAX_SIZE 100

typedef struct {

int data[MAX_SIZE];

int front;

int rear;

} Queue;

```

在这个结构体中,`data`数组用来存储队列元素,`front`和

`rear`分别表示队列的起始和结束位置。

可以通过以下函数来实现队列的基本操作:

- `void enqueue(Queue *q, int element)`: 将`element`添加到队列

的尾部;

- `int dequeue(Queue *q)`: 移除并返回队列的头部元素;

- `int isEmpty(Queue *q)`: 判断队列是否为空;

- `int isFull(Queue *q)`: 判断队列是否已满;

- `int getFront(Queue *q)`: 返回队列的头部元素。

这些函数的具体实现可以根据需要进行修改,下面是一个简单

的示例实现:

```c

#include

#include

#define MAX_SIZE 100

typedef struct {

int data[MAX_SIZE];

int front;

int rear;

} Queue;

void enqueue(Queue *q, int element) {

if (isFull(q)) {

printf("Queue is fulln");

return;

}

q->rear = (q->rear + 1) % MAX_SIZE;

q->data[q->rear] = element;

}

int dequeue(Queue *q) {

if (isEmpty(q)) {

printf("Queue is emptyn");

return -1;

}

int frontElement = q->data[q->front];

q->front = (q->front + 1) % MAX_SIZE;

return frontElement;

}

int isEmpty(Queue *q) {

return q->front == q->rear;

}

int isFull(Queue *q) {

return (q->rear + 1) % MAX_SIZE == q->front;

}

int getFront(Queue *q) {

if (isEmpty(q)) {

printf("Queue is emptyn");

return -1;

}

return q->data[q->front];

}

int main() {

Queue q;

= = 0;

enqueue(&q, 10);

enqueue(&q, 20);

enqueue(&q, 30);

printf("Front element: %dn", getFront(&q));

printf("Dequeued: %dn", dequeue(&q));

printf("Dequeued: %dn", dequeue(&q));

printf("Dequeued: %dn", dequeue(&q));

return 0;

}

```

这个示例演示了如何使用队列来存储整数元素。注意,队列的

最大大小由`MAX_SIZE`宏定义控制。在示例中,队列的最大

大小被设置为100。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712845592a2133379.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信