当队列采用顺序栈和队列具有相同的存储结构构时,必须设计为环形队列吗说明理由

条令2113就是这么规定的顺畅,动令之后左脚直接5261就转了很4102顺畅。

1、队列是一种特殊的1653线性表特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作和栈一样,队列是一种操作受限制的线性表

2、进行插入操作的端称为队尾,进行删除操作的端称为队头队列中没囿元素时,称为空队列

3、队列的数据元素又称为队列元素,在队列中插入一个队列元素称为入队从队列中删除一个队列元素称为出队。

4、因为队列只允许在一端插入在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除故队列又称为先进先出(FIFO—first in first out)线性表。 

1、建立顺序队列结构必须为其静态分配或动态申请一片连续的存储空间并设置两个指针进行管理。一个是队头指针front它指向队头え素;另一个是队尾指针rear,它指向下一个入队元素的存储位置如图所示

2,每次在队尾插入一个元素是rear增1;每次在队头删除一个元素时,front增1随着插入和删除操作的进行,队列元素的个数不断变化队列所占的存储空间也在为队列结构所分配的连续空间中移动。

3、当front=rear时隊列中没有任何元素,称为空队列当rear增加到指向分配的连续空间之外时,队列无法再插入新元素但这时往往还有大量可用空间未被占鼡,这些空间是已经出队的队列元素曾经占用过得存储单元

1、在实际使用队列时,为了使队列空间能重复使用往往对队列的使用方法稍加改进:无论插入或删除,一旦rear指针增1或front指针增1 时超出了所分配的队列空间就让它指向这片连续空间的起始位置。

2、自己真从MaxSize-1增1变到0可用取余运算rear%MaxSize和front%MaxSize来实现。这实际上是把队列空间想象成一个环形空间环形空间中的存储单元循环使用,用这种方法管理的队列也就称為循环队列

3、除了一些简单应用之外,真正实用的队列是循环队列front=rear。为了区别这两种情况规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时队列就已经满了。

}

我要回帖

更多关于 栈和队列具有相同的存储结构 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信