将队列中的元素逆置

void reverseQueue_Sq(SqQueue& Q)
{  // Add your code here
//如果当前队列已经为空,则无需执行任何操作
//如果当前队列非空
//那么就将队列中的所有的元素依次出队列并入栈
//直到队列为空
//此时再执行出栈操作,把栈中的元素依次出栈并入队列
//所得到的队列里的元素就已经逆置了
//下面先执行出队列、入栈操作
//创建并初始化一个顺序栈
SqStack *sq=(SqStack*)malloc(sizeof(SqStack));
InitStack_Sq(*sq,INITSIZE,INCREMENT);
while(!QueueEmpty_Sq(Q)){
    //出队列
    ElemType elem;
    DeQueue_Sq(Q,elem);
    //将出队列的元素入栈
    Push_Sq(*sq,elem);
}
//执行到这里说明当前队列已经为空
//并且队列中的元素已经全部入栈
//下面要将栈中的所有的元素出栈并入队列
while(!StackEmpty_Sq(*sq)){
    //将顺序栈中的元素出栈到elem
    ElemType elem;
    Pop_Sq(*sq,elem);
    //将出栈的元素入队列
    EnQueue_Sq(Q,elem);
}
//执行到这里说明栈中的所有元素已经出栈并添加到队列中了
//完成了原队列的逆置
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值