指出下述程序段的功能是什么?

SeqStack S1, S2, tmp;
   DataType x;   ...//假设栈tmp和S2已做过初始化   while ( ! StackEmpty (&S1))    {     x=Pop(&S1) ;     Push(&tmp,x);    }   while ( ! StackEmpty (&tmp) )    {     x=Pop( &tmp);      Push( &S1,x);     Push( &S2, x);    }

1. while ( ! StackEmpty (&S1)){...} 第一次循环,将栈S1中所有的元素出栈,并放入栈tmp中
2. while ( ! StackEmpty (&tmp) ){...} 第二次循环,将tmp中的元素出栈,并分别放入栈S1和S2中

执行完两次循环后,S1和S2中元素一样,并且和初始的S1中的元素顺序一致,tmp依然为空,所以整个这段代码完成的功能就是把S1中的元素拷贝到S2中去。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网