栈的实现以及各类操作
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 50
typedef struct{
int top;
int data[MaxSize];
}Stack;
void InitStack(Stack &S)
{
S.top = -1;
}
bool IsEmptyStack(Stack S)
{
if(S.top == -1)
return true;
else
return false;
}
bool Push(Stack &S, int x)
{
if(S.top == MaxSize - 1)
return false;
S.data[++S.top] = x;
return true;
}
bool Pop(Stack &S)
{
int x;
if(S.top == -1)
return false;
x = S.data[S.top--];
printf("---出栈元素为: %d\n", x);
return true;
}
void display(Stack S)
{
while(S.top != -1)
printf("********************栈内元素为: %d\n", S.data[S.top--]);
}
int main(void)
{
Stack S;
InitStack(S);
int i = 0, j = 0;
int num = 0;
while(i < 5){
printf("请输入第%d个数: ",i + 1);
scanf("%d", &num);
Push(S, num);
i++;
}
display(S);
while(j < 5){
Pop(S);
j++;
}
return 0;
}