#include <iostream>
#define max 1000
using namespace std;
typedef struct
{
int elements[max];
int top ;
} STACK ;
void MakeNull(STACK &S)
{
S.top = -1 ;
}
bool Empty(STACK S)
{
if (S.top <= 0)
return true;
else
return false;
}
void Pop(STACK &S)
{
if (Empty(S))
cout<<"栈空" ;
else
{
cout<<S.elements[S.top]<<endl;
S.top -= 1 ;
}
}
int Top(STACK S)
{
if (Empty(S))
return NULL;
else
return (S.elements[S.top]);
}
void Push(int x,STACK &S)
{
if (S.top == max - 1)
cout<<"栈满";
else
{
S.top += 1 ;
S.elements[ S.top ] = x ;
}
}
int main()
{
STACK a;
a.top=1;
Push(4,a);
Push(5,a);
Push(8,a);
Pop(a);
Push(11,a);
Push(15,a);
Push(3,a);
Pop(a);
Push(2,a);
Push(7,a);
Pop(a);
Pop(a);
Pop(a);
Pop(a);
Push(23,a);
bool flag;
do
{
flag=Empty(a);
Pop(a);
}
while(flag!=false);
return 0;
}
#define max 1000
using namespace std;
typedef struct
{
int elements[max];
int top ;
} STACK ;
void MakeNull(STACK &S)
{
S.top = -1 ;
}
bool Empty(STACK S)
{
if (S.top <= 0)
return true;
else
return false;
}
void Pop(STACK &S)
{
if (Empty(S))
cout<<"栈空" ;
else
{
cout<<S.elements[S.top]<<endl;
S.top -= 1 ;
}
}
int Top(STACK S)
{
if (Empty(S))
return NULL;
else
return (S.elements[S.top]);
}
void Push(int x,STACK &S)
{
if (S.top == max - 1)
cout<<"栈满";
else
{
S.top += 1 ;
S.elements[ S.top ] = x ;
}
}
int main()
{
STACK a;
a.top=1;
Push(4,a);
Push(5,a);
Push(8,a);
Pop(a);
Push(11,a);
Push(15,a);
Push(3,a);
Pop(a);
Push(2,a);
Push(7,a);
Pop(a);
Pop(a);
Pop(a);
Pop(a);
Push(23,a);
bool flag;
do
{
flag=Empty(a);
Pop(a);
}
while(flag!=false);
return 0;
}