写一个判断栈是否为空的代码C语言
时间: 2024-03-06 16:51:51 浏览: 17
以下是判断栈是否为空的代码示例:
```c
#include <stdio.h>
#define MAXSIZE 10 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE];
int top; // 栈顶指针
} Stack;
// 初始化栈
void init(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return (s->top == -1);
}
int main() {
Stack s;
init(&s);
if (isEmpty(&s)) {
printf("栈为空\n");
} else {
printf("栈不为空\n");
}
return 0;
}
```
在上面的代码中,我们首先定义了一个结构体 `Stack`,包含一个数组 `data` 和一个栈顶指针 `top`。然后我们定义了两个函数:`init` 用于初始化栈,`isEmpty` 用于判断栈是否为空。在 `main` 函数中,我们先初始化了一个栈,然后调用 `isEmpty` 函数判断栈是否为空,并输出结果。
相关问题
判断栈是否为空,C语言代码
假设栈的结构体定义如下:
```c
#define MAX_SIZE 100 // 栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 栈中元素
int top; // 栈顶指针
} Stack;
```
可以通过以下代码判断栈是否为空:
```c
int is_empty(Stack* s) {
return s->top == -1; // 当栈顶指针为-1时,说明栈为空
}
```
或者:
```c
int is_empty(Stack* s) {
return s->top + 1 == 0; // 当栈中元素个数为0时,说明栈为空
}
```
两种方法都可以判断栈是否为空,具体使用哪种方法可以根据实际情况选择。
判断栈满和栈空的c语言代码
假设栈的结构体定义如下:
```c
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
```
判断栈是否满:
```c
int isFull(Stack *s) {
return (s->top == MAX_SIZE - 1);
}
```
判断栈是否空:
```c
int isEmpty(Stack *s) {
return (s->top == -1);
}
```