用C++写出链栈的入栈和出栈代码
时间: 2024-10-29 16:13:55 浏览: 49
在C++中实现链式栈的入栈和出栈操作可以参考以下代码:
**入栈(Push):**
```cpp
// 定义链式栈节点结构体
struct Node {
int data;
Node* next;
};
// 创建一个新的栈顶节点并添加数据
void push(Node*& top, int value) {
// 分配内存
Node* newNode = new Node();
newNode->data = value;
// 如果栈为空,将新节点设为栈顶
if (!top) {
top = newNode;
}
// 否则,将新节点链接到当前栈顶之后
else {
newNode->next = top;
top = newNode;
}
}
```
**出栈(Pop):**
```cpp
int pop(Node*& top) {
// 检查栈是否为空
if (StackEmpty(&top)) {
printf("Stack is empty!\n");
return -1; // 返回错误码表示栈已空
}
// 获取并移除栈顶的数据
int result = top->data;
Node* temp = top;
top = top->next; // 更新栈顶
// 释放栈顶节点的内存
delete temp;
return result;
}
// 判断链栈是否为空的辅助函数
bool StackEmpty(Node* top) {
return !top;
}
```
阅读全文