链表出栈序列C++代码
时间: 2023-06-28 07:10:01 浏览: 86
链式栈.cpp 使用链表实现的栈类 c++代码
以下是一个链表实现栈,包括入栈、出栈、获取栈顶元素和判断栈是否为空的基本操作。你可以根据需要进行修改和使用。
```c++
#include <iostream>
using namespace std;
struct ListNode{
int val;
ListNode* next;
ListNode(int x):val(x),next(nullptr){}
};
class MyStack{
private:
ListNode* top;
public:
MyStack():top(nullptr){}
void push(int x){
ListNode* node = new ListNode(x);
node->next = top;
top = node;
}
int pop(){
if(empty()){
throw "The stack is empty!";
}
int res = top->val;
ListNode* temp = top;
top = top->next;
delete temp;
return res;
}
int peek(){
if(empty()){
throw "The stack is empty!";
}
return top->val;
}
bool empty(){
return top == nullptr;
}
};
int main(){
MyStack s;
s.push(1);
s.push(2);
s.push(3);
cout << s.pop() << endl; // 3
cout << s.pop() << endl; // 2
cout << s.peek() << endl; // 1
cout << s.pop() << endl; // 1
cout << s.empty() << endl; // 1 (true)
return 0;
}
```
阅读全文