Linux数据结构——队列(顺序表实现)

首先我们要理解队列所遵循的规则就是“先进先出”。我们可以看到生活中排队的例子(如:排队买票、排队打饭)其实就是一个队列。

如同栈一样,为了保证队列的安全性,我们对队列的操作也只有三种:入队列、出队列、取队首元素。

这篇文章主要是用数组来实现一个队列,为了使队列的空间能充分利用,所以用线性队列来模拟环形队列来实现。

#define SeqQueueMaxSize 1000
typedef char SeqQueueType;

typedef struct SeqQueue
{
    SeqQueueType data[SeqQueueMaxSize];
    size_t head;
    size_t tail;
    size_t size;
}SeqQueue;

宏SeqQueueMaxSize 是设定了整个数组内可以存放的个数,head 是队首元素在数组内的下表,tail是队尾元素在数组内的下表,size是真个队列中我们存的元素的总个数。

一.队列的初始化

void  SeqQueueInit(SeqQueue* q)
{
    if (q == NULL)
        return;
    q->size = 0;
    q->head = 0;
    q->tail = 0;
    return;
}

首先要对指针的非法性判断。

然后将里面的个数置0。我头和尾从0开始。

二.队列的销毁

void  SeqQueueDestory(SeqQueue* q)
{
    if (q == NULL)
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值