用c语言写一个判断顺序栈是否是空栈的程序
时间: 2024-09-28 07:16:58 浏览: 36
用c语言实现的一个顺序栈
在C语言中,判断顺序栈(也称为数组栈或动态数组栈)是否为空,通常会检查栈顶元素的值。由于C语言本身并没有内置的栈数据结构,我们通常会自己实现一个。这里是一个简单的示例,假设我们有一个定义了`top`作为栈顶指针的栈结构:
```c
#include <stdbool.h>
typedef struct {
int *data; // 栈底到栈顶的元素地址
int capacity; // 栈的最大容量
int top; // 当前栈顶元素的索引
} Stack;
bool is_empty(Stack *stack) {
return stack->top == -1; // 如果top等于-1,表示栈为空
}
// 初始化栈函数,这里为了简单起见,默认初始化为空
void init_stack(Stack *stack, int size) {
stack->data = (int*)malloc(size * sizeof(int));
stack->capacity = size;
stack->top = -1;
}
// 其他栈操作...
```
在这个例子中,`is_empty`函数通过比较`top`是否等于-1来判断栈是否为空。如果`top`为-1,说明没有元素在栈上,因此栈为空。
阅读全文