初始化栈s;判断栈s是否非空;依次进栈元素A,B,C,D,E;输出栈内元素个数;输出栈顶元素;输出出栈序列
时间: 2024-11-06 19:36:05 浏览: 9
链栈(栈的链式存储)
初始化栈s的具体步骤取决于使用的数据结构。如果用数组作为基础,一般会预先指定大小。例如,在C++中,我们可以这样做:
```cpp
stack<int> s(5); // 初始化一个可以容纳5个元素的栈
```
判断栈s是否非空,可以用`!s.empty()`检查栈顶是否为空。
依次进栈元素A到E,可以使用`push`操作:
```cpp
s.push(A);
s.push(B);
s.push(C);
s.push(D);
s.push(E);
```
输出栈内元素个数,就是询问当前栈顶距离底部还有多少个元素,也就是`s.size()`或`s.count()`。
输出栈顶元素,直接访问`top`属性即可,假设当前栈顶元素为x,那么`cout << s.top() << endl;`。
至于输出出栈序列,由于栈的特点是先进后出(LIFO),因此从栈顶开始弹出并打印元素,我们得到的将是A-E的顺序:
```cpp
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
```
完整的示例代码片段如下:
```cpp
stack<int> s(5);
s.push(A);
s.push(B);
s.push(C);
s.push(D);
s.push(E);
if (!s.empty()) {
cout << "栈内元素个数: " << s.size() << endl;
cout << "栈顶元素: " << s.top() << endl;
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
cout << "\n出栈序列: A B C D E" << endl;
} else {
cout << "栈为空!" << endl;
}
```
阅读全文