顺序栈测试代码及结果
时间: 2024-10-20 12:02:26 浏览: 50
顺序栈是一种基础的数据结构,它按照后进先出(LIFO)的原则存储数据,最常用的是数组实现。下面是一个简单的顺序栈的测试代码示例,使用C++编写:
```cpp
#include <iostream>
using namespace std;
// 定义顺序栈模板
template <typename T>
class Stack {
private:
T* arr; // 存储元素的数组
int top; // 栈顶指针
public:
Stack(int size) {
arr = new T[size];
top = -1;
}
~Stack() {
delete[] arr;
}
void push(T item) {
if (top == size - 1) {
cout << "Stack overflow" << endl;
} else {
arr[++top] = item;
cout << "Pushed " << item << " to stack." << endl;
}
}
T pop() {
if (isEmpty()) {
cout << "Stack underflow" << endl;
return T();
} else {
T item = arr[top--];
cout << "Popped " << item << " from stack." << endl;
return item;
}
}
bool isEmpty() const {
return top == -1;
}
};
int main() {
Stack<int> s(5); // 创建一个大小为5的整数栈
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
// 试图溢出
s.push(6); // 结果应显示 "Stack overflow"
// 检查并弹出元素
cout << s.pop() << endl; // 结果应显示 "Popped 5 from stack."
cout << s.pop() << endl; // 结果应显示 "Popped 4 from stack."
return 0;
}
```
在这个例子中,我们创建了一个可以存储整数的栈,并尝试向其添加元素直到溢出。然后,我们从栈中弹出一些元素,验证了它们的顺序。运行此代码后,你应该能看到预期的输出。
阅读全文