00001 00011 #ifndef _STACK_ 00012 #define _STACK_ 00013 00014 #include "iterator.h" 00015 00019 typedef struct sStackNode 00020 { 00022 void* inf; 00024 struct sStackNode *next; 00025 }SStackNode; 00026 00030 typedef SStackNode* StackNode; 00031 00035 typedef struct sStack 00036 { 00038 int size; 00040 StackNode top; 00041 }SStack; 00042 00046 typedef SStack* Stack; 00047 00048 //############################################################################## 00049 00056 Stack newStack(); 00057 00066 void stackDelete(Stack stack); 00067 00079 int stackPush(Stack stack,void* inf); 00080 00095 int stackPop(Stack stack,void** inf); 00096 00112 int stackTop(Stack stack,void** inf); 00113 00122 int stackSize(Stack stack); 00123 00134 int stackMap(Stack stack,void(*fun)(void*)); 00135 00146 Iterator stackIterator(Stack stack); 00147 00148 #endif