用c语言实现栈的基本操作
时间: 2023-10-11 10:06:45 浏览: 141
C语言 栈的基本操作
4星 · 用户满意度95%
栈(Stack)是一种先进后出(Last In First Out,LIFO)的数据结构,可以用数组或链表实现。下面是用C语言实现栈的基本操作:
1. 初始化栈:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int top; // 栈顶指针
} Stack;
void initStack(Stack *S) {
S->top = -1;
}
```
2. 判断栈是否为空:
```c
int isEmpty(Stack *S) {
return S->top == -1;
}
```
3. 判断栈是否已满:
```c
int isFull(Stack *S) {
return S->top == MAXSIZE - 1;
}
```
4. 入栈操作:
```c
int push(Stack *S, int x) {
if (isFull(S)) {
return 0; // 栈已满,入栈失败
}
S->top++;
S->data[S->top] = x;
return 1; // 入栈成功
}
```
5. 出栈操作:
```c
int pop(Stack *S, int *x) {
if (isEmpty(S)) {
return 0; // 栈为空,出栈失败
}
*x = S->data[S->top];
S->top--;
return 1; // 出栈成功
}
```
6. 获取栈顶元素:
```c
int getTop(Stack *S, int *x) {
if (isEmpty(S)) {
return 0; // 栈为空,获取栈顶元素失败
}
*x = S->data[S->top];
return 1; // 获取栈顶元素成功
}
```
阅读全文