利用字符数组实现一个先入后出的栈结构,并提供栈操作的push和pop的接口
栈的特点:
先进后出
栈是一种只能在一端进行插入和删除操作的特殊线性表。
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
int ptr = -1; //指向栈顶元素,栈为空时为-1
char stack[100];
void push_stack(char c);
char pop_stack();
int main()
{
printf("这是一个栈,先进后出,字节操作,大小100字节\n");
push_stack('a');
push_stack('z');
pop_stack();
return 0;
}
void push_stack(char c)
{
if (ptr > MAXSIZE - 1)
{
fprintf(stderr, "栈已满!\n");
exit(EXIT_FAILURE);
}
stack[++ptr] = c; //此处应注意
printf("进栈成功!进栈字符为%c,当前栈所剩容量为%d\n", c, MAXSIZE - ptr);
}
char pop_stack()
{
char c;
if (ptr < 0)
{
fprintf(stderr, "栈已空!\n");
exit(EXIT_FAILURE);
}
c = stack[ptr--]; //此处应注意
printf("出栈成功!出栈字符为%c,当前栈所剩容量为%d\n", c, MAXSIZE - ptr);
return c;
}