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);
}
//执行到这里说明栈中的所有元素已经出栈并添加到队列中了
//完成了原队列的逆置
}
04-17
1万+
11-04
177
10-15
993