c语言abstract作用,C语言抽象数据类型(ADT:abstract data type)之队列的实现

头文件queue.h定义队列需要的接口,这里包括了动态数组和链式需要的create_queue和destory_queue

queue.h

#include

#define QUEUE_TYPE int

void create_queue(size_t size);

void destory_queue(void);

void insert(QUEUE_TYPE value);

void delete(void);

QUEUE_TYPE first(void);

int is_empty(void);

int is_full(void);

静态数组实现的队列

#include"queue.h"

#include

#include

#define QUEUE_SIZE 100

#define ARRAY_SIZE (QUEUE_SIZE+1)

static QUEUE_TYPE queue[ARRAY_SIZE];

static size_t front = 1;

static size_t rear = 0;

void insert(QUEUE_TYPE value)

{

assert(!is_full());

rear = (rear+1)% ARRAY_SIZE;

queue[rear]=value;

}

void delete(void)

{

assert(!is_empty());

front=(front+1)%ARRAY_SIZE;

}

QUEUE_TYPE first(void)

{

assert(!is_empty());

return queue[front];

}

int is_empty(void)

{

return ( rear+1 )%ARRAY_SIZE==front;

}

int is_full(void)

{

return ( rear+2 )%ARRAY_SIZE==front;

}

此处是循环链表,判断是满还是空是在让队列中始终有一个元素的情况下实现的。

标签:QUEUE,ADT,void,queue,抽象数据类型,front,ARRAY,type,SIZE

来源: https://blog.csdn.net/wcm_lucky/article/details/89003255

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值