数据结构顺序栈c++ 包括头文件和源文件
时间: 2024-10-20 13:03:22 浏览: 29
C++中头文件和源文件详细介绍
在C++中,创建一个简单的顺序栈数据结构通常涉及到两个部分:`stack.h`(头文件)和`stack.cpp`(源文件)。以下是这两个文件的基本内容:
**stack.h (头文件)**
```cpp
#ifndef STACK_H
#define STACK_H
#include <vector>
class Stack {
public:
// 构造函数和析构函数
Stack();
~Stack();
// 入栈操作
void push(int value);
// 出栈操作
int pop();
// 查看栈顶元素但不删除
int top() const;
// 判断栈是否为空
bool isEmpty() const;
// 返回栈的大小
size_t size() const;
private:
std::vector<int> data;
};
#endif // STACK_H
```
**stack.cpp (源文件)**
```cpp
#include "stack.h"
// 实现构造函数
Stack::Stack() : data() {}
// 实现析构函数
Stack::~Stack() {}
// 入栈操作
void Stack::push(int value) {
data.push_back(value);
}
// 出栈操作
int Stack::pop() {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return data.back(); // 弹出并返回顶部元素
}
// 查看栈顶元素但不删除
int Stack::top() const {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return data.back();
}
// 判断栈是否为空
bool Stack::isEmpty() const {
return data.empty();
}
// 返回栈的大小
size_t Stack::size() const {
return data.size();
}
```
在这个例子中,我们使用了C++标准库中的`std::vector`来作为底层存储,它提供了动态数组的功能。顺序栈的主要操作包括入栈(push)、出栈(pop)、查看栈顶元素(top)以及检查栈是否为空(isEmpty)。
阅读全文