队列数据结构c语言_C语言:数据结构-队列的定义及基本运算

队列也是一种运算受限的线性表,请结合实例理解栈的定义和特点,学习时注意与线性表和栈的相关内容进行对比学习,掌握队列的“先进先出”的特点。

1.队列的定义

队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(Front),允许插入的一端称为队尾(Rear)。不含元素的队列称为空队列。

如果元素按照a1,a2,a3,…,an的顺序入队,则a1为队头元素,an为队尾元素。出队时,其顺序与入队顺序相同,即按a1,a2,a3,…,an-1,an的顺序出队。如图3-5所示。

68d750b681e3e65fc6edf5389b25ec03.png

队列示意图

队列的操作特点是先进先出(first in first out)或后进后出(last in last out)的原则进行的,因此,队列又称FIFO,或LILO表。

在实际生活中有许多队列的例子,例如,在排队买票,先来的先买,后来的排在队尾。又如计算机处理文件打印时,为了解决高速的CPU与低速的打印机之间的矛盾,对于多个打印请求,操作系统按照“先进先出”的原则形成打印队列。

队列的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制。队列只允许在表的一端进行插入,在另一端进行删除,允许删除的一端称为队头,允许插入的一端称为队尾。

队列的基本运算

队列的基本运算有以下几种:

(1)初始化队列InitQueue(Q)

初始条件:队列Q不存在。

操作结果:置空队列,构造一个空队列Q。

(2)入队InQueue(Q,x)

初始条件:队列Q已存在且非满。

操作结果:输入一个元素x到队尾,长度加1。

(3)出队OutQueue(Q,x)

初始条件:队列Q已存在且非空。

操作结果:删除队头元素,长度减1。

(4)读队头元素ReadFront(Q,x)

初始条件:队列Q已存在且非空。

操作结果:读队头元素,但队列中元素不变。

(5)判队空QEmpty(Q)

初始条件:队列Q存在。

操作结果:若队列空则返回1,否则返回0。

(6)判队满Qfull(Q)

初始条件:队列Q已存在。

操作结果:若队列满则返回1,否则返回0。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值