用c语言写一段链栈进栈并依次输出的代码
时间: 2024-10-25 12:04:18 浏览: 21
C语言 表、栈和队列详解及实例代码
在C语言中,我们可以使用结构体和指针来实现链表栈的数据结构。这里是一个简单的链栈实现,包括入栈(push)和出栈(pop)操作,以及遍历打印栈顶元素的功能:
```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;
}
// 出栈并打印功能
void pop_and_print() {
if (top == NULL) {
printf("Stack is empty.\n");
return;
}
StackNode* temp = top;
int poppedValue = temp->data;
top = top->next; // 移除顶部节点
printf("Popped element: %d\n", poppedValue);
}
// 遍历并打印栈顶元素
void print_top() {
if (top == NULL) {
printf("Stack is empty.\n");
} else {
printf("Top element: %d\n", top->data);
}
}
int main() {
push(10);
push(20);
push(30);
// 打印当前栈顶元素
print_top();
pop_and_print(); // 输出并移除栈顶元素
return 0;
}
```
阅读全文