实现栈的如下操作:push,pop,isempty,isfull 用c语言写出代码
时间: 2024-05-28 13:14:56 浏览: 115
栈常用操作函数
下面是C语言实现栈的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 栈的最大容量
// 定义栈结构体
typedef struct {
int data[MAXSIZE]; // 存储栈中的元素
int top; // 栈顶指针
} Stack;
// 初始化栈
void initStack(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isFull(Stack *s) {
return s->top == MAXSIZE - 1;
}
// 入栈操作
void push(Stack *s, int value) {
if (isFull(s)) {
printf("栈已满,无法入栈\n");
return;
}
s->top++; // 栈顶指针向上移动
s->data[s->top] = value; // 将元素压入栈中
}
// 出栈操作
int pop(Stack *s) {
if (isEmpty(s)) {
printf("栈为空,无法出栈\n");
return -1;
}
int value = s->data[s->top]; // 取出栈顶元素
s->top--; // 栈顶指针向下移动
return value;
}
// 测试栈的操作
int main() {
Stack s;
initStack(&s);
push(&s, 10);
push(&s, 20);
push(&s, 30);
printf("pop()=%d\n", pop(&s));
printf("pop()=%d\n", pop(&s));
printf("pop()=%d\n", pop(&s));
printf("pop()=%d\n", pop(&s)); // 栈为空,无法出栈
return 0;
}
阅读全文