数据结构 阅读算法

[复制链接]
查看11 | 回复2 | 2008-6-17 21:39:12 | 显示全部楼层 |阅读模式
void AE(Stack&S){

InitStack(S);
Push(S,3);
push(S,4);
int x=Pop(S)+2*Pop(S);
Push(S,x);
int i,a[5]={1,5,8,12,15};
for(i=0;i<5;i++)Push(S,2*a);
while(!StackEmpty(s)) cout<<Pop(S)<<'';
}
算法被调用后的输出结果是什么.

回复

使用道具 举报

千问 | 2008-6-17 21:39:12 | 显示全部楼层
void AE(Stack&S){ InitStack(S);// 初始化栈Push(S,3);
// 3 进栈push(S,4);
// 4 进栈int x=Pop(S)+2*Pop(S); // 先把4出栈,再把3出栈,之后给x赋值,即
// x = 4 + 2 * 3 = 10Push(S,x); // 10 进栈,此时栈里只有这一个元素int i,a[5]={1,5,8,12,15}; for(i=0;i<5;i++)Push(S,2*a); //数组里的数的2倍依次进栈,

回复

使用道具 举报

千问 | 2008-6-17 21:39:12 | 显示全部楼层
InitStack(S); Push(S,3); push(S,4); int x=Pop(S)+2*Pop(S); Push(S,x); 栈底元素==x==2*3+4=10for(i=0;i<5;i++)Push(S,2*a); 栈元素从底到上分别为:2,10,16,24,30while(!StackEmpty
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行