随笔分类 -  数据结构-栈与队列

摘要:两个栈实现一个队列 方法一:我们先来说最笨的一种方法:倒栈 大多数人的思路是:始终维护s1作为存储空间,以s2作为临时缓冲区。 入队时,将元素压入s1。 出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1。 见下面示意图: 不得 阅读全文
posted @ 2018-03-20 18:00 Curo 阅读(677) 评论(0) 推荐(0)
摘要:一.顺序队列的改进 队列元素的出列是在队头,即下标为0的位置,那也就意味着,队列中的所有元素都得向前移动,以保证队列的队头(也就是下标为0的位置)不为空,此时的时间复杂度为0(n)。 可有时想想,为什么出队列时一定要全部移动呢,如果不去限制队列的元素必须存储在数组的前n个单元这一条件,出队的性能就会 阅读全文
posted @ 2018-03-20 13:01 Curo 阅读(10583) 评论(1) 推荐(3)
摘要:优先队列 引入 优先队列是一种特殊的队列,在学习堆排序的时候就有所了解,点“击”查看。 那么优先队列是什么呢? 说白了,就是一种功能强大的队列。如果不太清楚队列,可以看看我这篇博客。 它的功能强大在哪里呢? 四个字:自动排序。 优先队列的头文件&&声明 首先,你需要 这两个头文件。 其次,一个优先队 阅读全文
posted @ 2018-03-06 14:58 Curo 阅读(189) 评论(0) 推荐(0)
摘要:#include #include typedef struct node3 { int nValue; struct node3 *pNext; }MyQueue; typedef struct node4 { MyQueue *pHead; MyQueue *pTail; int nCount; }Queue; void q_Init(Queue... 阅读全文
posted @ 2017-11-13 16:14 Curo 阅读(168) 评论(0) 推荐(0)