C 语言使用非循环双向链表实现队列

在前面两篇博客中,我分别使用了静态数组动态数组来模拟循环队列。但是线性表中和队列最神似的莫过于链表了。我在前面也使用了大量的篇幅来讲述了链表的各种操作。今天我们使用一种比较特殊的链表——非循环双向链表来实现队列。首先这里的说明的是构建的是普通的队列,而不是循环队列。当我们使用数组的时候创建循环队列是为了节省存储空间,而来到链表中时,每一个节点都是动态申请和释放的,不会造成空间的浪费,所以就不需要采用循环队列了。第二,大家在很多书上看到的是使用单链表实现队列,我这里将会使用带头结点尾结点的非循环双链表实现,虽然多维护了两个节点和指针域,但是在链表头尾进行插入删除的时候不需要遍历链表了,队列操作变得非常的方便。真正实现了只在头尾操作。代码上传至https://github.com/chenyufeng1991/Queue_LinkedList

核心代码如下:

(1)初始化队列

(2)入队,在尾结点插入元素

(3)出队,在头结点处删除节点

(4)打印所有节点

(5)判断队列是否为空

(6)测试代码

2 3 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部