C语言栈的基本操作代码
时间: 2024-09-29 10:13:09 浏览: 29
c语言栈操作源代码直接运行
在C语言中,栈是一种线性的数据结构,通常用于存储临时变量、函数调用信息等。基本的栈操作包括入栈(push)、出栈(pop)、查看顶部元素(top)以及判断栈是否为空(is_empty)。以下是使用数组作为栈的数据结构和相应的操作:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int stack[MAX_SIZE];
int top; // 栈顶指针,初始化为-1
} Stack;
// 初始化空栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int is_empty(Stack *s) {
return s-1;
}
// 入栈操作(元素压入栈顶)
void push(Stack *s, int value) {
if (s->top < MAX_SIZE - 1) {
s->stack[++s->top] = value;
} else {
printf("Stack overflow!\n");
}
}
// 出栈操作(弹出并返回栈顶元素,若栈空则返回错误)
int pop(Stack *s) {
if (!is_empty(s)) {
return s->stack[s->top--];
} else {
printf("Stack underflow!\n");
return -1;
}
}
// 查看栈顶元素(非递归)
int peek(Stack *s) {
if (!is_empty(s))
return s->stack[s->top];
else
return -1;
}
int main() {
Stack s;
init(&s);
push(&s, 5);
push(&s, 10);
printf("Top element: %d\n", peek(&s)); // 输出10
printf("Popped element: %d\n", pop(&s)); // 输出10
printf("After popping: Top element = %d\n", peek(&s)); // 输出5
return 0;
}
```
阅读全文