数据结构之顺序队列、链式队列、循环队列-c语言实现

文章来源:http://blog.seclibs.com/数据...、链式队列、循环队列-c语言实/git

在上一篇文章里,说了队列的相关内容,其中除了这篇文章说的顺序队列、链式队列和循环队列三个,还提到了阻塞队列和并发队列,这两个由于能力缘由,还没能实现,这个坑等之后再来补。github

回来讲此次实现的三个队列,首先是顺序队列,顺序队列是基于数组来实现的队列,在原数组的实现基础上增长了head和tail两个结构体成员,用来标识队头和队尾。数组

其余的也没有什么太大的变化了,代码以下并发

若是须要下载代码的,请移步文末spa


接下来讲链式队列,链式队列的实现与以前的实现都有一点区别,由于链表和队列两个都是须要指针的,因此在这里定义两个结构体的时候须要格外的注意一下,在后面的代码实现中也须要着重理解一下其中的含义。指针

在定义结构体的时候,我使用了typedef struct和struct两种,能够在代码中去感觉一下它们的区别所在。code

由于其中有链表的存在,因此在出队的时候须要注意将出队元素的内存空间释放掉,其余的也就没有太多了变化了,代码以下blog

若是须要下载代码,请移步至文末队列


最后说循环队列,循环队列实现的难易程度与顺序队列相仿,难点在于当队列放满一次时,如何将变量回到0,重新开始走,这里仍是用到前一篇文章中肯定队列满时的公式,当head增长到最大时,如何返回0,head=(head+1)%size,本身能够好好琢磨一下,其余的也都是同样的方式。内存

代码以下,能够本身去好好琢磨一下

若是须要下载代码的,请移步至文末


代码:

顺序队列:GitHub

链式队列:GitHub

循环队列:GitHub

文章首发公众号和我的博客

公众号:无意的梦呓(wuxinmengyi)

博客:http://blog.seclibs.com/

相关文章
相关标签/搜索