moyi516 发表于 2017-11-17 21:15:10

求大神帮分析这段代码

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));//出队并进栈
}

这段代码最后的功能是将数列逆序吗?

BngThea 发表于 2017-11-17 21:18:02

整段代码的含义应该将一个队列Q进行逆序

zqianglh 发表于 2017-11-18 17:49:48

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]
查看完整版本: 求大神帮分析这段代码