搜索
写经验 领红包
 > 生活

数据结构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。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小彤创作整理编辑!