现有一个整数队列, 需要将其前 k 个元素进行逆置, 剩余的元素保持原来的顺序。
例如队列[1, 2, 3, 4, 5, 6, 7, 8, 9], 若 k 为 4, 则需要将队列调整为[4, 3, 2, 1, 5,6, 7, 8, 9]
#include <iostream>
#include <queue>
#include <stack>
using namespace std;
int main()
{
queue<int>q;
stack<int>s;
int d;
int n=0;
cout<<"输入n:"<<endl;
cin>>n;
cout<<"输入n个元素:";
for(int i=0; i<n; i++)
{
cin>>d;
q.push(d);
}
int k,p=0;
cout<<"输入k:";
cin>>k;
while(!q.empty()&&p<k)
{
int l=q.front();
s.push(l);
q.pop();
p++;
}
while(!s.empty())
{
int w=s.top();
q.push(w);
cout<<s.top()<<" ";
s.pop();
}
while(p<n)
{
int l2=q.front();
s.push(l2);
int w2=s.top();
q.push(w2);
cout<<q.front()<<" ";
p++;
s.pop();
q.pop();
}
return 0;
}