栈空 C语言 代码
时间: 2023-07-09 18:24:08 浏览: 126
下面是一个简单的示例代码,用于判断栈是否为空:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_SIZE 100 // 栈的最大容量
int stack[MAX_SIZE]; // 定义栈,使用数组实现
int top = -1; // 栈顶位置,初始值为-1
bool is_empty() {
return top == -1; // 栈空的条件是栈顶位置为-1
}
int main() {
// 入栈操作
stack[++top] = 1;
stack[++top] = 2;
stack[++top] = 3;
// 判断栈是否为空
if (is_empty()) {
printf("栈为空\n");
} else {
printf("栈不为空\n");
}
return 0;
}
```
在上面的代码中,我们使用了一个 `is_empty()` 函数来判断栈是否为空。该函数返回一个 `bool` 类型的值,表示栈是否为空。如果栈顶位置等于-1,则返回 `true`,否则返回 `false`。在 `main()` 函数中,我们先将三个元素入栈,然后调用 `is_empty()` 函数来判断栈是否为空,并输出相应的结果。
相关问题
链表实现栈的C语言代码
以下是链表实现栈的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结点
typedef struct Node{
int data;
struct Node* next;
} Node;
// 定义栈结构体
typedef struct Stack{
Node* top;
int size;
} Stack;
// 初始化栈
void initStack(Stack* s){
s->top = NULL;
s->size = 0;
}
// 判断栈是否为空
int isEmpty(Stack* s){
return s->size == 0;
}
// 入栈操作
void push(Stack* s, int data){
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = s->top;
s->top = newNode;
s->size++;
}
// 出栈操作
int pop(Stack* s){
if(isEmpty(s)){
printf("栈为空,无法出栈");
return -1;
}
int data = s->top->data;
Node* temp = s->top;
s->top = s->top->next;
free(temp);
s->size--;
return data;
}
// 获取栈顶元素
int peek(Stack* s){
if(isEmpty(s)){
printf("栈为空,无法获取栈顶元素");
return -1;
}
return s->top->data;
}
int main(){
Stack s;
initStack(&s);
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("栈顶元素为:%d\n", peek(&s));
printf("出栈元素为:%d\n", pop(&s));
printf("出栈元素为:%d\n", pop(&s));
printf("出栈元素为:%d\n", pop(&s));
printf("栈是否为空:%d\n", isEmpty(&s));
return 0;
}
```
在上面的代码中,我们使用了链表来实现栈。在栈的初始化函数中,我们将栈顶指针置为 NULL,并将栈的大小设为 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);
}
```
阅读全文