数据结构顺序栈 c语言
时间: 2023-11-04 10:05:26 浏览: 109
顺序栈是一种基于数组实现的栈,它的特点是后进先出(LIFO)。在C语言中,可以通过定义一个数组和一个指向栈顶元素的指针来实现顺序栈。具体实现如下:
```
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE]; // 存放栈中元素的数组
int top; // 栈顶指针
} SqStack;
// 初始化栈
void InitStack(SqStack *S) {
S->top = -1; // 初始化栈顶指针为-1,表示栈为空
}
// 判断栈是否为空
int StackEmpty(SqStack S) {
if (S.top == -1) {
return 1; // 栈为空
} else {
return 0; // 栈不为空
}
}
// 进栈操作
int Push(SqStack *S, int x) {
if (S->top == MAXSIZE - 1) {
return 0; // 栈满,无法进栈
} else {
S->top++; // 栈顶指针加1
S->data[S->top] = x; // 将元素x入栈
return 1; // 进栈成功
}
}
// 出栈操作
int Pop(SqStack *S, int *x) {
if (S->top == -1) {
return 0; // 栈空,无法出栈
} else {
*x = S->data[S->top]; // 将栈顶元素赋值给x
S->top--; // 栈顶指针减1
return 1; // 出栈成功
}
}
```
阅读全文