homework exercise2.2 E2(b)

采用栈的方法,为下面的说明编写一个函数copy_stack:

Error_code copy_stack(Stack &dest , Stack &source);

前置条件:无

后置条件:Stack dest已经成为Stack source的一个完全副本,而source未被改变。如果检测到错误,则返回一个合适的代码,否则返回success。

写出函数:

使用Stack方法和一个临时的Stack,从Stack source中抽取元素并将每个元素加入到Stack dest中,并恢复Stack source。


 

Error_code copy_stack(Stack &dest,Stack &source)

{
Error_code detected=success;
Stack temp;
Stack_entry item;
while(detected==success&&!source.empty()}
{
    detected=source.top(item);
    detected=source.pop();
    if(detected==success)detected=temp.push(item);
  }
while (detected==success&&!temp.empty()
{
  detected=temp.top(itemp);
  detected=temp.pop();
  if (detected==success)detected=source.push(item);
  if (detected==success)detected=dest.push(item);
  }
return detected;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值