队列

本文介绍了一个简单的队列数据结构的实现方法,并演示了如何通过C语言进行元素的添加和删除操作。通过具体的代码示例,展示了队列的基本工作原理及其在程序中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*

队列

*/

 

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

 

 

struct node {

int value;

struct node *next;

};

 

struct queue {

int count;

struct node *head;

struct node *tail;

};

 

void add_queue(struct queue *queue, struct node *node)

{

if (queue->count == 0)

{

queue->head = node;

queue->tail = node;

}

else

{

queue->tail->next = node;

queue->tail = node;

}

node->next = NULL;

queue->count++;

printf("add queue->value: %d, queue->count: %d\n", \

queue->tail->value, queue->count);

}

 

void del_queue(struct queue *queue, struct node **node)

{

struct node *elm;

 

*node = NULL;

if (queue->count == 0)

return;

elm = queue->head;

// if (elm != NULL)

{

queue->count--;

if (queue->count == 0)

{

queue->head = queue->tail = NULL;

}

else 

{

queue->head = queue->head->next;

}

*node = elm;

(*node)->next = NULL;

}

printf("del queue->head->value: %d, queue->count: %d\n", \

(*node)->value, queue->count);

}

 

static struct queue queue;

 

int main(int argc, char **argv)

{

int i;

struct node *node;

 

memset(&queue, 0, sizeof(struct queue));

printf("add queue value\n");

for (i = 0; i < 10; i++)

{

node = (struct node *)malloc(sizeof(struct node));

printf("point: %p\n", node);

node->value = i;

add_queue(&queue, node);

}

printf("del queue value\n");

for (i = 0; i < 10; i++)

{

del_queue(&queue, &node);

printf("point: %p\n", node);

free(node);

}

 

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值