的各种基本运算,并在此基础上设计一个程序exp3-2.cpp完成以下功能。 (1)初始化栈s。 (2)判断栈s是否非空。 (3)依次进栈元素a、b、c、d、e。 (4)判断栈s是否非空。 (5)输出出栈序列。 (6)判断栈s是否非空。 (7)释放栈。
时间: 2024-11-29 15:33:46 浏览: 1
数据结构教程
5星 · 资源好评率100%
在计算机科学中,栈是一种特殊的线性数据结构,它的基本运算是增删操作,主要包括:
1. 入栈(Push):将元素添加到栈顶,新元素成为栈顶元素。
2. 出栈(Pop):从栈顶移除并返回元素,如果栈为空则无法出栈。
3. 查看栈顶元素(Peek 或 Top):查看但不移除栈顶元素,常用于确定栈内内容。
4. 判断栈是否为空(IsEmpty):检查栈中是否还有元素。
5. 获取栈大小(Size 或 Count):统计栈中元素的数量。
下面是一个简单的C++程序exp3-2.cpp,实现了上述要求的功能:
```cpp
#include <iostream>
#include <stack>
int main() {
// 初始化栈s
std::stack<int> s;
// 判断栈s是否非空
bool is_empty = s.empty();
if (is_empty) {
std::cout << "Stack is empty.\n";
} else {
std::cout << "Stack is not empty.\n";
}
// 进栈元素
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
// 再次判断栈s是否非空
is_empty = s.empty();
if (is_empty) {
std::cout << "Stack is now empty.\n";
} else {
std::cout << "Stack still has elements: ";
}
// 输出出栈序列
while (!s.empty()) {
std::cout << s.top() << " ";
s.pop();
}
std::cout << "\n";
// 再次判断栈s是否非空
is_empty = s.empty();
if (is_empty) {
std::cout << "Stack is now completely empty.\n";
} else {
std::cout << "Error: Stack should be empty after popping all elements.\n";
}
// 释放栈(C++自动管理内存,无需手动释放)
return 0;
}
```
在这个程序中,我们首先创建了一个`std::stack<int>`类型的栈`s`,然后进行了入栈、查看栈状态、出栈以及再次查看栈状态的操作。最后输出了栈中所有元素,并确认栈是否为空。
阅读全文