#include<stdio.h>
#include<afxcoll.h> //use the "collection" class
#include<malloc.h>
typedef struct{
CPtrList lst;
} STACK;
void push(STACK *s, int *data){
(*s).lst.AddHead((void *) data);
}
int *pull(STACK * S)
{
int * result;
result =(int *)(*s).lst.GetHead();
(*s).lst.RemoveHead();
return result;
}
BOOL isEmpty(STACK *s)
{
return(*s).lst.IsEmpty();
}
void main()
{
int * aNumber;
STACK myStack;
STACK * P = &myStack;
// create 5 new integers dynamically and push the corresponding pointers
// to the stack.
//
for(int i=0; i<5; i++){
aNumber=(int *)malloc(sizeof(int));
*aNumber=i;
push(p, aNumber);
printf("%d pushed on stack\n", *aNumber);
}
printf("\nPop data from stack:\n");
while(!isEmpty(p))
{
aNumber = pull(p);
printf("%d pulled from stack\n", *aNumber);
free(aNumber);
}
printf("Stack is empty.\n");
}