#include <stdio.h>
#include <stdlib.h>
typedef int dataType;
#define MAX_SIZE 100
// 2.3 顺序栈(设定top=0为空栈)
typedef struct
{
dataType a[MAX_SIZE];
int top;
}seqStack;
// 1.初始化(置空)栈
void init(seqStack *st)
{
st->top = 0;
}
// 2.判断栈是否为空
int empty(seqStack st)
{
return st.top ? 0:1;
}
// 3.读栈顶元素
dataType read(seqStack st)
{
if(empty(st))
{
printf("栈是空的!\n");
exit(1);
}
return st.a[st.top-1];
}
// 4.元素x进栈
void push(seqStack *st, dataType x)
{
if(st->top == MAX_SIZE)
{
printf("栈已满,无法进栈!\n");
exit(1);
}
st->a[st->top] = x;
st->top+=1; // 或st->top++;
}
// 5.出栈
void pop(seqStack *st)
{
if(!st->top)
{
printf("栈已空,无法出栈!");
exit(1);
}
st->top-=1; // 或st->top--;
}
int main()
{
seqStack st; // 定义栈
init(&st); // 初始化栈
dataType x = 1;
push(&st,x); // 数据元素x进栈
printf("%d\n", read(st)); // 读栈顶元素
pop(&st); // 出栈
pop(&st); // 出栈
return 0;
}
版权属于:
lixiangrong
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)