试题详情
- 简答题什么是队列的上溢现象?一般有几种解决方法,试简述之。
-
在队列的顺序存储结构中,设队头指针为front,队尾指针为rear,队列的容量(即存储的空间大小)为maxnum。当有元素要加入队列(即入队)时,若rear=maxnum,则会发生队列的上溢现象,此时就不能将该元素加入队列。对于队列,还有一种“假溢出”现象,队列中尚余有足够的空间,但元素却不能入队,一般是由于队列的存储结构或操作方式的选择不当所致,可以用循环队列解决。
一般地,要解决队列的上溢现象可有以下几种方法:
(1)可建立一个足够大的存储空间以避免溢出,但这样做往往会造成空间使用率低,浪费存储空间。
(2)要避免出现“假溢出”现象可用以下方法解决:
第一种:采用移动元素的方法。每当有一个新元素入队,就将队列中已有的元素向队头移动一个位置,假定空余空间足够。
第二种:每当删去一个队头元素,则可依次移动队列中的元素总是使front指针指向队列中的第一个位置。
第三种:采用循环队列方式。将队头、队尾看作是一个首尾相接的循环队列,即用循环数组实现,此时队首仍在队尾之前,作插入和删除运算时仍遵循“先进先出”的原则。 关注下方微信公众号,在线模考后查看
热门试题
- 写出算法的功能。intfun(sqstr
- 数据的逻辑结构可以形式的用一个二元组B=
- 在一非空二叉树的中,根结点的右边只有()
- 顺序查找时间为O(n),二分查找时间为O
- 头结点的next域值是指示单链表的()
- 线索二叉树中某结点R没有左孩子的充要条件
- 通常将链接方式存储的线性表称为(),它不
- 在对n个元素进行快速排序的过程中,若每次
- 在串的运算中,EqualStr(aaa,
- 设一棵完全二叉树具有1000个结点,则此
- 深度为k的完全二叉树,其前k-1层共有(
- 栈和队列都是操作受限的线性表。
- 计算机内部数据处理基本的单位是()。
- 设高度为h的二叉树上只有度为0和度为2的
- 哈夫曼树是带权路径长度最短的树,路径上权
- 向一个顺序栈插入一个元素时,首先使()后
- 如果只想得到一个序列中第k个最小元素之前
- 已知一个稀疏矩阵如下图所示: 给
- 线性表的两种存储结构分别为()和()
- 序列12,10,13,11,16,14,