/*--------------------------------------------------------------------*/ /* teststack.c */ /* Author: Bob Dondero */ /* A client of a generic Stack ADT */ /*--------------------------------------------------------------------*/ #include #include #include #include "stack.h" int main(void) /* Test the Stack ADT. Return 0. */ /* For simplicity, ignore the possibility of insufficient memory. */ { Stack_T oStack1; Stack_T oStack2; double *pd; /* Create and use a Stack of strings. */ oStack1 = Stack_new(); Stack_push(oStack1, "Ruth"); Stack_push(oStack1, "Gehrig"); Stack_push(oStack1, "Mantle"); Stack_push(oStack1, "Jeter"); while (! Stack_isEmpty(oStack1)) { printf("%s\n", (char*)Stack_top(oStack1)); Stack_pop(oStack1); } Stack_free(oStack1); /* Create and use a Stack of doubles. */ oStack2 = Stack_new(); pd = (double*)malloc(sizeof(double)); *pd = 1.1; Stack_push(oStack2, pd); pd = (double*)malloc(sizeof(double)); *pd = 2.2; Stack_push(oStack2, pd); pd = (double*)malloc(sizeof(double)); *pd = 3.3; Stack_push(oStack2, pd); while (! Stack_isEmpty(oStack2)) { pd = (double*)Stack_top(oStack2); printf("%g\n", *pd); free(pd); Stack_pop(oStack2); } Stack_free(oStack2); return 0; }