数据结构中队的定义

如题所述

数据结构中队的定义:只允许在一端进行插入,在另一端进行删除的操作的线性表,又称为先进先出线性表,简称FIFO。

拓展知识:

栈和队列是两种重要的线性结构。从数据结构的角度看,栈和队列也是线性表,其特特殊在于栈和队列的基本操作是线性表操作的子集,他们是操作受限的线性表,因此,可以称为限定性的数据结构。

但是另一方面,从数据类型角度来看,栈和队列是和线性表大不相同的两类重要的抽象数据类型。并且栈和队列因为其特性,被广泛的应用于各种软件系统中,学习他们对我们有很大的帮助。

队列的特点概括起来就是先进先出。队列在我们生活中更为常见,比如我们经常排队买东西、12306的购票等待队列;开进隧道的火车,各节车厢就是队中的元素,最先进去的车厢总是最先驶出隧道。

队列的存储结构主要有两种,分别是顺序队列和链队。顺序队列其定义如下,可以看到,顺序队列的核心就是一个连续的存储空间,在这里使用数组来实现。链队的定义如下,可以看到,链队就是采用链表来存储栈,采用尾插法创建队。链队的定义较为复杂,分为队结点、链队两部分。

有些地方,在定义队列时,为了存储方便,会给链队增加一个头结点,并令头指针指向头结点。此时,空队的判断条件变为头指针和尾指针均指向头结点(尾指针指向头结点,因为front的指向一直不变)。

和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个指针front和rear分别指示队列头元素及队列尾元素的位置。

为了在C语言中描述方便起见,在此我们约定:初始化建空队列时,令front=rear=0,每当插入新的队列尾元素时,“尾指针增1”;每当删除队列头元素时,“头指针增1”。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置。

温馨提示:答案为网友推荐,仅供参考
相似回答