编程实现链式堆栈,实现堆栈的压入和弹出。 提示:有两个类,一个是结点类,它包含结点值和指向下一结点的指针;另一个类是堆栈类,数据成员为堆栈的头指针,它是结点类的友元类。
时间: 2024-02-09 14:10:10 浏览: 66
类来实现堆栈
5星 · 资源好评率100%
好的,我可以为您编写链式堆栈的代码。
首先是结点类的定义:
```c++
class Node {
public:
Node(int val) : value(val), next(nullptr) {}
friend class Stack; // 声明堆栈类为友元
private:
int value;
Node* next;
};
```
然后是堆栈类的定义:
```c++
class Stack {
public:
Stack() : head(nullptr) {}
void push(int val);
int pop();
private:
Node* head;
};
```
实现堆栈的压入和弹出方法:
```c++
void Stack::push(int val) {
Node* node = new Node(val);
node->next = head;
head = node;
}
int Stack::pop() {
if (head == nullptr) {
throw "Stack is empty.";
}
int val = head->value;
Node* temp = head;
head = head->next;
delete temp;
return val;
}
```
这样就完成了链式堆栈的实现,您可以在主函数中创建堆栈对象并调用这两个方法进行测试。
阅读全文