用c语言写一段链栈进栈并输出的代码
时间: 2024-10-25 19:04:18 浏览: 31
C语言 表、栈和队列详解及实例代码
在 C 语言中,你可以使用结构体来实现链表的栈。这里是一个简单的链栈示例,包含 `push` 进栈和 `top` 查看栈顶元素的功能,但因为 C 没有内置的动态内存管理,你需要手动管理节点的分配和释放:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链栈节点结构
typedef struct Node {
int data;
struct Node* next;
} StackNode;
// 初始化链栈头指针
StackNode* top = NULL;
// 将元素入栈
void push(int value) {
StackNode* newNode = (StackNode*)malloc(sizeof(StackNode));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->data = value;
newNode->next = top;
top = newNode;
printf("Element %d pushed to stack.\n", value);
}
// 获取栈顶元素(若为空则返回 NULL)
int getTop() {
if (top == NULL) {
return -1; // 表示空栈
}
return top->data;
}
// 输出栈顶元素(只用于演示,实际使用时应判断是否为空)
void printTop() {
int value = getTop();
if (value != -1) {
printf("Top element is %d\n", value);
} else {
printf("Stack is empty.\n");
}
}
int main() {
push(5); // 入栈第一个元素
push(10); // 再次入栈
printTop(); // 输出栈顶元素
return 0;
}
```
阅读全文