数据结构

在顺序队列当判断为满时,用了realloc。这是个扩大数组容量的函数,但有一缺点,(网上很多都是废话)。这个函数将新建一个数组,数组长度由参数定义,返回的是新的数组指针(地址)。有人会问那我们原来那个数组呢,删了啊 。扯远了,回来。

那个判断当满队列时就用这个函数,这时已默认队列为满。然后它判断尾指针是否指向最后一个位置:如果不是,将队列的数据一个一个移到原先最大位置的后面(即扩大两倍后,再把队列复制(画个图是这样的:10变成1000,接着1010就是这样)),它的注释写着:队尾指针后移。WTF,不得不对网上一些人写的文章吐槽。。。今天在写source code时要申请一块buffer。

问题解决,队列入队时,队头指针可能不是指向第一个数据的位置。WTF那个奇葩写的书。

又有深的理解了,仅在一端插入,另一端删除。即队头有删除后,队头指针后移。而队尾的插入速率较快,队头未删除,队尾就排满了。队尾指针的后移也兼顾到了队首指针的后移,以及后续的插入与删除。是个好的算法....打脸博文。啪啪啪

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值