■数据结构的一道题

利用大小为N的数组顺序存贮一个队列时,该队列的最大长度是?请说名原因... 利用大小为N的数组顺序存贮一个队列时,该队列的最大长度是?
请说名原因
展开
 我来答
yesterday2651
2007-04-24 · TA获得超过594个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:434万
展开全部
为N-1, 因为队列需要设置成循环队列,所以必须有一个空格来区分队列的头和尾的分界线。
举个例子:一个长度为4的数组做循环队列,现在插入1,2,3,4四个数字:
作为队列,需要两个指针:队头指针head和队尾指针tail。初始的时候(队空),这两个指针是重合的,假设都指向a[1]位置。如下
a[0] = null
a[1] = null<-- head(tail)
a[2] = null
a[3] = null
每插入一个值,tail指针向后移一个,每删除一个值,队头指针向“前”移动一个。那么插入1,2,3三个数以后,队列的情况如下:
a[0] = null <-- tail
a[1] = 1 <-- head
a[2] = 2
a[3] = 3
如果现在插入4会出现什么情况?
a[0] = 4
a[1] = 1 <--head(tail)
a[2] = 2
a[3] = 3
队头指针和队尾指针再次重合!但是从第一步我们可以知道,队空的标志正是head和tail两个指针重合(事实上这也正是我们判断队列是否为空的标准)。这样的话,队满和队空的标志是一样的,这时不可接受的。
因此一个长度为N的数组来作为循环队列的话,队列的长度最长只能为N-1, 队空标志是head和tail重合,队满标志是tail在head“前”一位。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
忘至白葬不情必0T
2007-04-24 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
yesterday2651分析得很有道理,不过如果增加一个标志变量,用来区分head和tail重合时,队列是空还是满的话,结果就是N了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stylisthuq
2007-04-24 · TA获得超过218个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:159万
展开全部
为N,
每个数组元素存储一个队列元素,当然,这个队列需要设置成循环队列!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式