数据结构c语言版队列(队列定义c语言)
导语:C语言:数据结构-队列的定义及基本运算
队列也是一种运算受限的线性表,请结合实例理解栈的定义和特点,学习时注意与线性表和栈的相关内容进行对比学习,掌握队列的“先进先出”的特点。
1.队列的定义
队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(Front),允许插入的一端称为队尾(Rear)。不含元素的队列称为空队列。
如果元素按照a1,a2,a3,…,an的顺序入队,则a1为队头元素,an为队尾元素。出队时,其顺序与入队顺序相同,即按a1,a2,a3,…,an-1,an的顺序出队。如图3-5所示。
队列示意图
队列的操作特点是先进先出(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。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小彤创作整理编辑!