C语言实现判断链栈是否为空
时间: 2023-08-20 13:52:46 浏览: 95
链栈实现方法详解
要判断链栈是否为空,可以通过检查链栈的头指针是否为空来实现。以下是一个用C语言实现判断链栈是否为空的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
typedef struct Stack {
Node* top;
} Stack;
// 初始化链栈
void initStack(Stack* stack) {
stack->top = NULL;
}
// 判断链栈是否为空
int isEmpty(Stack* stack) {
return stack->top == NULL;
}
int main() {
Stack stack;
initStack(&stack);
if (isEmpty(&stack)) {
printf("链栈为空\n");
} else {
printf("链栈不为空\n");
}
return 0;
}
```
在这个示例中,使用了两个自定义的结构体 `Node` 和 `Stack` 来表示链栈。`Node` 结构体用于表示链栈中的节点,包含一个整数类型的数据域 `data` 和一个指向下一个节点的指针 `next`。`Stack` 结构体用于表示链栈本身,包含一个指向栈顶节点的指针 `top`。
首先,在 `initStack` 函数中,将链栈的头指针 `top` 初始化为 `NULL`。然后,在 `isEmpty` 函数中,判断链栈是否为空,即判断头指针 `top` 是否为 `NULL`。如果 `top` 为 `NULL`,则链栈为空;否则,链栈不为空。
在 `main` 函数中,先调用 `initStack` 函数初始化链栈,然后通过调用 `isEmpty` 函数判断链栈是否为空,并打印相应的结果。
注意,这只是一个简单的示例,实际应用中可能还需要实现链栈的其他操作,如入栈和出栈等。
阅读全文