【2】4. 队列的链式代码实现

目录

1. 初始化链队列

2. 链队列的入队

3. 链队列的出队

4. 链队列满队条件

5. 小结


==> 队列其实是单链表的一个阉割版。(插入和删除操作相对单链表有限制)

==> 可分为 带头结点 和 不带头结点 的两种方式

【2】4. 队列的链式代码实现

 

【2】4. 队列的链式代码实现

 

 

1. 初始化链队列

【2】4. 队列的链式代码实现

 

 

【2】4. 队列的链式代码实现

 

 

 

 

2. 链队列的入队

【2】4. 队列的链式代码实现

 

【2】4. 队列的链式代码实现

 

 

 

3. 链队列的出队

【2】4. 队列的链式代码实现

 

【2】4. 队列的链式代码实现

 

 

 

4. 链队列满队条件

顺序存储的时候,内存空间都是预分配的(静态数组),存储空间是有限的,不可拓展的。链式存储的队列容易拓展很方便,一般都不会队满除非内存不足。 所以顺序存储实现的队列,需要判断队列是否已满,但在链式存储中,不用关心这个问题。

 

 

 

5. 小结

如果要统计队列多长的话,怎么计算它的长度呢? 是不是只能从队头这个结点开始依次往后遍历然后统计一下总共有多少个结点? 显然需要用 O(n) 的时间,如果队列长度信息是经常频繁的需要访问到的,那么就可以加一个 int 型变量用来记录当前队列有多少个元素。

所以学习数据结构的时候千万不要教条化、它是一种解决问题的工具,你的问题需要什么东西,就可以因地制宜地灵活添加需要的东西。

 

【2】4. 队列的链式代码实现