如何使用C语言实现一个函数,当输入的数据已成功存入栈并判断为空时返回1,不为空则返回0?
时间: 2024-09-19 11:16:52 浏览: 36
C语言程序设计-把20个随机数存入一个数组,然后输出该数组中的最小值;其中确定最小值的下标的操作在fun函数中实现
5星 · 资源好评率100%
在C语言中,你可以通过定义一个函数,并结合使用栈结构来实现这个功能。首先,你需要创建一个栈结构体,通常我们会使用数组来模拟栈的行为。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义栈结构
typedef struct {
int* stack; // 存储数据的数组
int top; // 栈顶指针
int capacity; // 栈的容量
} Stack;
// 初始化栈
void init(Stack* s, int size) {
s->stack = (int*)malloc(size * sizeof(int));
s->top = -1;
s->capacity = size;
}
// 判断栈是否为空
int is_empty(Stack* s) {
return s->top == -1;
}
// 将元素压入栈
void push(Stack* s, int value) {
if (s->top < s->capacity - 1) {
s->top++;
s->stack[s->top] = value;
} else {
printf("Stack overflow!\n");
}
}
// 主函数测试
int main() {
Stack my_stack;
init(&my_stack, 5); // 初始化一个大小为5的栈
// 假设我们已经将一些值压入栈
for (int i = 1; i <= 4; i++) {
push(&my_stack, i);
}
// 调用is_empty检查栈是否为空
if (is_empty(&my_stack)) {
printf("Stack is empty, returning 1\n");
return 1;
} else {
printf("Stack is not empty, returning 0\n");
return 0;
}
}
```
在这个示例中,`is_empty` 函数会检查栈顶指针的位置,如果它指向-1(表示栈为空),则返回1;否则返回0。注意,这只是一个基础版本,实际应用可能需要处理更多边界情况和错误。
阅读全文