用栈的数据结构、C语言向我详细描述
时间: 2023-10-01 21:06:58 浏览: 86
数据结构-栈(C语言)
栈(Stack)是一种先进后出(LIFO)的数据结构。它类似于一个垂直放置的桶,元素只能从桶的一端(称为栈顶)插入和删除。栈通常有两个主要操作:压入(Push)和弹出(Pop),它们在栈顶进行。压入操作将新元素放在栈顶,弹出操作则将栈顶元素删除。栈可以用来处理逆序问题,例如反转字符串、括号匹配等。在 C 语言中,栈可以用数组和指针来实现。例如:
```c
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE]; // 数组模拟栈
int top = -1; // 栈顶指针
void push(int item){ // 压入操作
if(top == MAX_SIZE-1){
printf("Stack overflow!");
}else{
top++;
stack[top] = item;
}
}
int pop(){ // 弹出操作
if(top == -1){
printf("Stack underflow!");
return -1;
}else{
int item = stack[top];
top--;
return item;
}
}
int main(){
push(10);
push(20);
push(30);
printf("%d\n", pop()); // 输出 30
printf("%d\n", pop()); // 输出 20
printf("%d\n", pop()); // 输出 10
printf("%d\n", pop()); // 输出 "Stack underflow!"
return 0;
}
```
希望这个简单的示例能够帮助您理解栈的基本概念和实现方法。
阅读全文