C语言实现栈的操作(初始化、入栈、出栈、取栈顶)(数组)
#include <stdio.h>
#define SIZE 10
struct stack
{
int stack[SIZE];
int stack_size;
};
//栈顶元素
int top(struct stack * s)
{
return s->stack[SIZE - 1];
}
//入栈
void push(struct stack* s,int num)
{
if(s->stack_size == 0)
{
printf("栈为空!\n");
}
else
{
s->stack[s->stack_size++] = num;
}
}
//出栈
int pop(struct stack* s)
{
return s->stack[s->stack_size--];
}
//判断是否栈空
int empty(struct stack* s)
{
if (s->stack_size == 0)
{
printf("栈为空!\n");
return 1;
}
else
{
printf("栈不为空!\n");
return 0;
}
}
//初始化
void init(struct stack* s)
{
for (int i = 0;i < SIZE; i++)
{
s->stack[i] = 0;
}
s->stack_size = 0;
}
int main()
{
struct stack stk;
return 0;
}