题目1—C++中的stack和queue
第三组
-
C++ STL中的queue(热身)
a) 建立一个队列, 入队10个任意数, 连续出队5个元素并依次输出
b) 输出队头元素、输出队尾元素、队列中元素个数
c) 当队列不为空时,将队列中所有元素输出
d) 输出队列中元素个数样例输入:
1 2 3 4 5 6 7 8 9 10
样例输出:
1 2 3 4 5
6 10 5
6 7 8 9 10
5
#include<iostream>
#include<string>
#include<stack>
#include<queue>
using namespace std;
int main()
{
queue<int>qu;
int item;
for (int i = 0; i < 10; i++)
{
/*随意入队十个元素*/
cin >> item;
qu.push(item);
}
for (int i = 0; i < 5; i++)
{
/*出队五个元素*/
cout<< qu.front()<<' ';
qu.pop();
}
cout <<endl<< qu.front() << ' ' << qu.back() << ' ' << qu.size() << endl;//输出队首,队尾,元素个数
for (int i = 0; i < qu.size(); i++)
{
item = qu.front();
cout << item << ' ';
qu.pop();
qu.push(item);
}
cout << endl;
cout << qu.size();
}
- string、stack与queue小综合(PTA,考核)
a) 输入一个字符串line,输入一个字符x。
b)将line中的字符依次入栈,然后输出栈中元素个数与栈顶元素。
c)然后将栈中元素依次出栈并输出,出栈时将不等于x的字符依次入队列。
d)输出队列元素个数,队头与队尾
e)然后输出队列中所有元素。
样例输入:
ThisIsATest s
样例输出:
11 t
tseTAsIsihT
8 t T
teTAIihT
#include<iostream>
#include<queue>
#include<stack>
#include<string>
using namespace std;
int main()
{
queue<char>qu;
stack<char>st;
string line;
char x;
cin >> line>>x;//输入一个字符串和字符
for (int i = 0; i < line.size(); i++)
st.push(line[i]);//将字符串入栈
cout << st.size() << ' ' << st.top() << endl;//输出栈中元素个数,栈顶元素
char item;
int size = st.size();
for (int i = 0; i < size; i++)
{
/*将栈中元素依次出栈并输出,出栈时将不等于x的字符依次入队列*/
item = st.top();
st.pop();
cout << item;
if (item != x)
qu.push(item);
}
cout << endl;
cout << qu.size() << ' ' << qu.front() << ' ' << qu.back() << endl;
//输出队列元素个数,队头与队尾
for (int i = 0; i < qu.size(); i++)
{
//输出队列中所有元素。
item = qu.front();
cout << item ;
qu.pop();
qu.push(item);
}
cout << endl;
return 0;
}