何谓队列的“假溢出”现象?如何解决?
发布网友
发布时间:2022-05-23 10:47
我来回答
共1个回答
热心网友
时间:2023-10-20 16:40
先进先出在队列的顺序存储结构中,设头指针为front,队尾指针为rear,队的容量(存储空间的大小)为m。当有元素加入到队列时,若rear=m(初始时rear=0),则发生队列的上溢出现象,该元素不能加入到队列中。这里需要特别注意的是队列的假溢出现象,队列中还有空余的空间,但元素不能进队列。造成这种现象的原因是由于队列的操作方式所致。 解决队列上溢的方法有以下几种:
(1)建立一个足够大的存储空间,但这样做往往造成空间使用效率低。
(2)当出现假溢出时,可采用以下几种方法: ①采用平移元素的方法。每当队列中加入一个元素时,队列中已有的元素向队头移动一
个位置(当然要有空余的空间可移);
②每当删除一个队头元素时,则依次序移动队中的元素,始终使front指针指向队列中
的第一个位置; ③采用循环队列方式。把队列看成一个首尾相邻的循环队列,虽然物理上队尾在队首之
前,但逻辑上队首仍然在前,作插入和删除运算时仍按“”的原则。