栈的入栈,出栈,取栈顶元素C语言代码
时间: 2024-10-19 15:11:23 浏览: 45
在C语言中,栈是一种线性的数据结构,通常采用数组或链表实现。以下是简单的栈操作——入栈(push)、出栈(pop)以及取栈顶元素(top)的代码示例,这里我们假设使用数组作为栈底:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 定义栈的最大容量
// 定义栈结构体
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack* s) {
s->top = -1;
}
// 入栈操作
void push(Stack* s, int value) {
if (s->top == MAX_SIZE - 1) {
printf("Stack is full.\n");
return;
}
s->data[++s->top] = value;
printf("Pushed %d onto the stack.\n", value);
}
// 出栈操作
int pop(Stack* s) {
if (s->top == -1) {
printf("Stack is empty.\n");
return -1;
}
int value = s->data[s->top--];
printf("Popped %d from the stack.\n", value);
return value;
}
// 取栈顶元素(注意这不是真的出栈,只是查看)
int getTop(Stack* s) {
if (s->top == -1) {
printf("Stack is empty.\n");
return -1;
}
printf("Top element of the stack is %d.\n", s->data[s->top]);
return s->data[s->top];
}
int main() {
Stack myStack;
init(&myStack);
push(&myStack, 5); // 入栈5
push(&myStack, 10); // 再次入栈10
printf("Top element is %d before popping:\n", getTop(&myStack));
pop(&myStack); // 出栈并打印
return 0;
}
```
阅读全文