创建头文件LinkedStack.h,包含链栈的创建,判空,出入栈的操作。写出c++代码
时间: 2024-10-23 12:10:58 浏览: 36
C语言头文件 TYPEINFO.H
5星 · 资源好评率100%
在C++中,我们可以创建一个名为`LinkedStack.h`的头文件,用于定义一个简单的链表实现的栈数据结构。这个头文件将包含声明(declaration),而不是完整的实现细节(definition)。下面是基本的`LinkedStack`类定义:
```cpp
// LinkedStack.h
#ifndef LINKEDSTACK_H
#define LINKEDSTACK_H
#include <iostream>
class Node {
public:
int data;
Node* next;
Node(int value) : data(value), next(nullptr) {}
};
class LinkedStack {
private:
Node* top; // 指向栈顶元素
public:
// 构造函数,初始化一个空栈
LinkedStack() : top(nullptr) {}
// 判断栈是否为空
bool isEmpty() const { return top == nullptr; }
// 入栈操作:添加新元素到栈顶
void push(int value) {
Node* newNode = new Node(value);
newNode->next = top;
top = newNode;
}
// 出栈操作:返回并移除栈顶元素,如果为空则抛异常
int pop() {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
int value = top->data;
Node* temp = top;
top = top->next;
delete temp;
return value;
}
// 查看栈顶元素但不移除,如果为空则抛异常
int peek() const {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return top->data;
}
};
#endif // LINKEDSTACK_H
```
阅读全文