| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1477 人关注过本帖
标题:递归的运算
取消只看楼主 加入收藏
十里画码
Rank: 2
等 级:论坛游民
帖 子:36
专家分:20
注 册:2018-7-9
结帖率:100%
收藏
 问题点数:0 回复次数:2 
递归的运算
阅读算法,回答下列问题:
1.设队列Q=(1,3,5,2,6)。写出执行算法F2后的队列
2.简述算法F2的功能。

void F2(Queue *Q){
    DataType e;
    if (!QueueEmpty(Q)){
        e=DeQueue(Q);
        F2(Q);
        EnQueue(Q,e);
        }
}

答案:6,4,2,5,3,1
        功能:将队列倒置

其中DeQueue(Q)删除Q的对头元素,将删除的元素赋给e
    EnQueue(Q,e)是插入元素e为Q的新的队尾元素


问题:在执行第一次时,DeQueue(Q)删除Q了对头元素,将删除的元素赋给e(此时e=1),然后进入调用,执行第二次F2,DeQueue(Q)又删除Q了对头元素,将删除的元素赋给e(此时e=2),如此类推,我的问题是在下一次执行e的赋值时为什么不会将上一次e的值覆盖,例如:第二次执行是  e=2  的值为什么不会将  e=1  的值覆盖


求路过的各位大神解答
搜索更多相关主题的帖子: 算法 执行 删除 元素 赋给 
2018-11-14 12:27
十里画码
Rank: 2
等 级:论坛游民
帖 子:36
专家分:20
注 册:2018-7-9
收藏
得分:0 
有没有大神,求解
2018-11-15 23:28
十里画码
Rank: 2
等 级:论坛游民
帖 子:36
专家分:20
注 册:2018-7-9
收藏
得分:0 
回复 2楼 十里画码
谢谢了
2018-11-17 21:57
快速回复:递归的运算
数据加载中...
 
   



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

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