| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2005 人关注过本帖, 1 人收藏
标题:[求助]一个关于队列的基本问题
只看楼主 加入收藏
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
结帖率:56.76%
收藏(1)
 问题点数:0 回复次数:14 
[求助]一个关于队列的基本问题

QInsert(Q,QDelete(Q)+10);是什么意思?

我知道QInsert是将元素插入在队尾,QDelete(Q)是删除队首元素并返回,但+10就有点不解了,大家可否告之?

有一个程序用到上边语句,请各位看看,运行结果应是什么?

void AF(Queue& Q);

InitQueue(Q);

int a[4]={5,8,12,15}

for(int i=0;i<4;i++)QInsert(Q,a[i]);

QInsert(Q,QDelete(Q))

QInsert(Q,30);

QInsert(Q,QDelete(Q)+10);

while(!QueueEmpty(Q))cout<<QDelete(Q)<<' ';

希望大家给予帮助,我可不希望自己“栽”在这些小问题上哦!

搜索更多相关主题的帖子: 队列 QInsert QDelete int 
2004-06-21 19:51
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 
QDelete(Q)返回的是什么东西?

我的主页 http://www.
2004-06-21 21:13
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

按题意理解应该是从队列Q中删除队首元素并返回之!

我按原题目抄写了一遍,题目我反复阅读过,但无法确定,这是考试大纲,我想知道这种题型的正确思路以及以上询问的问题,阁下编程学识在小女之上,望考虑之后能够给予正确答案!再次感谢!


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-06-21 22:42
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

while(!QueueEmpty(Q))cout<<QDelete(Q)<<' ';

重这里可以看出QDelete(Q)他除了删除队首的元素外,他的返回值应该是队首的元素

QInsert(Q,QDelete(Q)+10);

那么这里就可以解释为删除队首的元素,

同时在队为加上一个比被删的元素大10的元素

申明:我这是猜的


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-21 22:59
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 

QDelete(Q)+10

应该就是队尾的元素+10 吧?如果QDelete(Q)返回类型为int or float型的话,

如果不是,那么题就有错误了


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-06-21 23:03
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

运行结果我已经知道了,是12,15,5,30,18,请问那个18是如何得来?若是8+10,那8怎么会在队尾呢?大家帮忙分析一下吧,考试是不可能遇见原题的,只是类型相同,若是无法弄懂,可算在“沟”里翻船了!

大家给个确切答案与解释,谢谢了!


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-06-21 23:34
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 
以下是引用zff_ff在2004-06-21 22:59:29的发言:

while(!QueueEmpty(Q))cout<<QDelete(Q)<<' ';

重这里可以看出QDelete(Q)他除了删除队首的元素外,他的返回值应该是队首的元素

QInsert(Q,QDelete(Q)+10);

那么这里就可以解释为删除队首的元素,

同时在队为加上一个比被删的元素大10的元素

[此贴子已经被作者于2004-06-21 23:48:06编辑过]


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-21 23:47
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

关键还是在QDelete(Q)上,

我们可以肯定是返回队首的元素

但到底是删除前的还是删除后的?

没看到原代码我不感乱说


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-21 23:53
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 

那些就是原代码,只是在下不理解罢了,

QInsert(Q,QDelete(Q))我也不敢确定到底是将队列中队首元素删除后再插入在原队队尾还是将原队队首元素删除就算完事,QInsert(Q,QDelete(Q)+10);就更不解了!

照你那样说,运行每步的值是多少?

void AF(Queue& Q);

InitQueue(Q);

int a[4]={5,8,12,15}

for(int i=0;i<4;i++)QInsert(Q,a[i]);//这里应该是5,8,12,15

QInsert(Q,QDelete(Q))//这里应该是什么?

QInsert(Q,30);//?

QInsert(Q,QDelete(Q)+10);//?


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2004-06-22 00:02
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

void AF(Queue& Q);

InitQueue(Q);

int a[4]={5,8,12,15}

for(int i=0;i<4;i++)QInsert(Q,a[i]);//这里应该是5,8,12,15

QInsert(Q,QDelete(Q))//8,12,15,5

QInsert(Q,30);//8,12,15,5,30

QInsert(Q,QDelete(Q)+10);//12,15,5,30,18

刚才楼看了一句


偶是一只想要飞却忘了咋飞的菜鸟
2004-06-22 00:08
快速回复:[求助]一个关于队列的基本问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015625 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved