数据结构

来源:互联网 发布:js radio disabled 编辑:程序博客网 时间:2024/05/20 23:08

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

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

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

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

0 0
原创粉丝点击