问题:
Q是一个队列,S是一个空栈,实现元素逆置的算法
算法思想:
利用空栈S保存Q中的元素,先将Q中的元素逐个入栈,再将栈中的元素逐个出栈并入队
算法实现:
void reverse(Queue Q, Stack S, ElemType x){
while(Q.front != Q.rear){
x = Q.data[Q.front];
Q.front++;
S.data[++S.top] = x;
}
while(S.top != 0){
x = S.data[S.top--];
Q.data[Q.rear] = x;
Q.rear++;
}
}