(1) 初始化顺序栈
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct sqstack
{
int data[MAXSIZE];
int top;
}sqstack; //顺序栈结构体定义
//顺序栈的初始化算法
void initseqstack(sqstack &st)
{st.top ==-1;
}
(2)判断栈空
//顺序栈判空算法
int emptystack(sqstack st)
{if(st.top ==-1)
return 1;
else
return 0;
}
(3) 判断栈满
//顺序栈栈满算法
int stackfull(sqstack &st)
{if(st.top ==MAXSIZE-1)
return 1;
else
return 0;
}
(4)入栈
//顺序栈入栈操作算法
void push(sqstack &st,int e)
{ if(stackfull(st)){
printf("full");
}
(5) 出栈
//顺序栈出栈算法
void pop(sqstack &st)
{if(emptystack(st)){//不可为空
printf("empty");
}
else
{printf("%3d",st.data[st.top]);
st.top --;
}
}
(6) 取栈顶元素.
//取顺序栈栈顶元素算法
int get_top(sqstack st)
{int x;
if(emptystack(st)){
printf("empty");
}
else
{x=st.data[st.top];
}
return x;}
main()
{ int x;
sqstack s;
printf("初始化一个栈\n");
initseqstack(s);
createstack(s);
printf("\n");
display(s);
printf("\n");
printf("请输入需要入栈的元素值:");
scanf("%d",&x);
push(s,x);
printf("\n");
display( s);
printf("调用出栈算法");
pop(s);
printf("\n");
display( s);
}