用C语言解决以下问题:若栈S为空栈,则返回True,否则返回False
时间: 2024-12-06 13:23:35 浏览: 9
在C语言中,检查一个栈是否为空可以使用一个条件判断来实现。由于C语言本身并不直接提供空栈检测的内置函数,我们需要自己维护栈的状态。下面是一个简单的例子,假设你有一个名为`isEmpty`的函数来检查栈是否为空:
```c
#include <stdbool.h>
// 假设你已经定义了一个名为`Stack`的数据结构,包括`top`指针表示栈顶元素的位置
typedef enum {FALSE = 0, TRUE = 1} bool; // 使用枚举类型避免冲突
bool isEmpty(Stack* s) {
// 如果栈顶指针等于-1(表示栈为空),则返回TRUE,否则返回FALSE
return (s->top == -1);
}
// 示例主函数
int main() {
Stack myStack; // 假设这是你的栈实例
// 先清空栈
myStack.top = -1;
// 调用isEmpty函数检查
if (isEmpty(&myStack)) {
printf("Stack is empty.\n");
return TRUE; // 因为 isEmpty 返回的是真(1)
} else {
printf("Stack is not empty.\n");
return FALSE; // 回传假(0)
}
}
```
在这个例子中,`isEmpty`函数只是检查栈顶指针是否指向栈底位置(通常是-1)。如果是,说明栈是空的,返回`TRUE`;否则返回`FALSE`。
阅读全文