用C++将一组数据连续压入栈,所有元素都入栈后,再连续的将栈中的所有元素依此出栈,将会得到和原数据序列排列相反的一组数据,即利用栈实现逆序操作。
时间: 2024-02-21 22:00:27 浏览: 82
好的,这是一个很基础的栈的应用,下面是C++代码实现:
```c++
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> s;
int arr[] = {1, 2, 3, 4, 5}; // 原数据序列
int n = sizeof(arr) / sizeof(int);
// 将所有元素连续压入栈
for (int i = 0; i < n; i++) {
s.push(arr[i]);
}
// 将栈中的所有元素依次出栈并输出
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
return 0;
}
```
输出结果为:`5 4 3 2 1`,与原数据序列排列相反。
相关问题
用C++将一组输入数据连续压入栈,所有元素都入栈后,再连续的将栈中的所有元素依此出栈,得到和原数据序列排列相反的一组数据
可以使用STL中的stack来实现。具体的思路是,首先将所有的输入数据压入栈中,然后依次将栈中的元素出栈并放入一个数组中,最终得到的数组就是原数据序列排列相反的一组数据。
下面是示例代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
const int MAXN = 1000;
int main() {
stack<int> s;
int n, a[MAXN], i = 0;
// 依次将输入数据压入栈中
cin >> n;
while (n--) {
int x;
cin >> x;
s.push(x);
}
// 依次将栈中元素出栈并放入数组中
while (!s.empty()) {
a[i++] = s.top();
s.pop();
}
// 输出得到的数组
for (int j = 0; j < i; j++) {
cout << a[j] << " ";
}
cout << endl;
return 0;
}
```
例如,输入数据为 1 2 3 4 5,那么输出的数据就是 5 4 3 2 1。
将一组数据连续压入栈,所有元素都入栈后,再连续的将栈中的所有元素依此出栈,将会得到和原数据序列排列相反的一组数据,即利用栈实现逆序操作,用C++将代码写出来
好的,以下是用C++实现利用栈实现逆序操作的代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> s;
int n;
cout << "请输入数据的个数:" << endl;
cin >> n;
cout << "请输入数据:" << endl;
for(int i = 0; i < n; i++) {
int x;
cin >> x;
s.push(x);
}
cout << "逆序后的数据为:" << endl;
while(!s.empty()) {
cout << s.top() << " ";
s.pop();
}
cout << endl;
return 0;
}
```
该程序首先创建了一个 int 类型的栈 s,然后通过输入的数据个数 n 和数据值,将数据依次压入栈中。接着,通过循环依次将栈中的数据出栈,并输出出栈的元素,从而实现了逆序操作。最后,程序输出一个换行符并退出。
希望能够帮助到你!
阅读全文