1、空堆栈
2、入堆栈
3、堆栈类型定义
#define MAX_SIZE 50
typedef struct
{
int top;
int maxNum;
int elements[MAX_SIZE];
}S_STACK;
4、创建空堆栈
void CreateStack(S_STACK* stack, int maxsize)
{
stack->top = -1;
stack->maxNum = maxsize;
}
5、判断堆栈是否为空
int IsEmpty(S_STACK s)
{
return s.top < 0;
}
6、判断堆栈是否为满
int IsFull(S_STACK s)
{
return s.top >= s.maxNum - 1;
}
7、入栈操作
void Push(S_STACK* s, int ele)
{
if(IsFull(*s))
return;
(s->top)++;
s->elements[s->top] = ele;
}
8、出栈操作
void Pop(S_STACK* s, int* ele)
{
if(IsEmpty(*s))
return;
*ele = s->elements[s->top];
(s->top)--;
}
9、获取堆栈头数据
void StackTop(S_STACK* s, int* ele)
{
if(IsEmpty(*s))
return;
*ele = s->elements[s->top];
}
10、打印堆栈
void PrintStack(S_STACK* s)
{
int i;
printf("stack contains: ");
for(i = 0; i <= s->top; i++)
printf("%d ", s->elements[i]);
printf("\n");
}