标题:不用第三变量交换两数探讨
只看楼主
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
 问题点数:0 回复次数:4 
不用第三变量交换两数探讨
a,和b两数,不用第三变量.交换两数,
谭浩强那本书上有个例子是
a=a^b;
b=b^a;
a=a^b;
想请问一下这个程序有什么缺点?

另一种方法是
push a; a进栈
push b; b进栈
pop a; 怎么a可以出栈?a不是比a先进栈吗?
pop b;
这种方法不解,哪位请教一下,THX。

另还有其它的一些方法,大家可以讨论。

[此贴子已经被作者于2006-10-24 14:56:32编辑过]

搜索更多相关主题的帖子: 变量 谭浩强 push pop 探讨 
2006-10-24 14:50
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
得分:0 
pop a 是指将栈顶的元素输出到a中。
不是将a出栈

要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2006-10-24 15:09
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
得分:0 

那能不能写成:
push a;
push b;
pop b;
pop a;
2006-10-24 15:45
longerhe
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-10-10
得分:0 
那不就没有交换a,b了?
2006-10-24 15:52
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
得分:0 
不能写成:
push a;
push b;
pop b;
pop a;的形式
楼主翻下数据结构方面的书,上面都会介绍堆栈的知识,读一下,了解一下堆栈的性质。
事实上,几乎100%的程序都不会用到楼主所提到的交换方法,最常见的也是最好的方法就是定义临时变量交换的方法。
把它当作问题来讨论实在是没什么实际意义

[此贴子已经被作者于2006-10-24 16:26:52编辑过]


要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2006-10-24 16:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-98372-1-1.html




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

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