求大神帮分析这段代码
void demo (Stack &S,int e){Queue Q; //Q为队列
InitQueue (Q);//初始化队列
while(!StackEmpty (S))//当栈非空
{
PP=Pops ; //出栈,栈顶元素赋值给pp
if (PP!=e) EnQueue(Q,pp); //入队
}
while(!QueueEmpty(Q))//当队列非空
Push(S,DeQueue(Q));//出队并进栈
}
这段代码最后的功能是将数列逆序吗? 整段代码的含义应该将一个队列Q进行逆序 void demo(Stack &S, int e) {
Queue Q; //Q为队列
InitQueue(Q);//初始化队列
while (!StackEmpty(S))//当栈非空
{
PP = Pops; //出栈,栈顶元素赋值给pp
//没有出栈的语句
if (PP != e) {
EnQueue(Q, pp); //入队
}
}
while (!QueueEmpty(Q)) {//当队列非空
Push(S, DeQueue(Q));//出队并进栈
}
}
整个过程 清空所有值为e的元素 并对非e元素进行逆序
页:
[1]