IStack.c
上传用户:duwei1288
上传日期:2009-12-27
资源大小:451k
文件大小:1k
源码类别:

BREW编程

开发平台:

Visual C++

  1. #include "IStack.h"
  2. IStack* ISTACK_CreateInstance()
  3. {
  4. return MALLOCREC(IStack);
  5. }
  6. boolean ISTACK_Release(IStack** pStack)
  7. {
  8. FREEIF(*pStack);
  9. return TRUE;
  10. }
  11. boolean ISTACK_PushOnStack(IStack* pStack,void* pStackElement)
  12. {
  13. if((MAX_STACK_SIZE==pStack->m_nTopPtr)||(!pStack)||(!pStackElement))
  14. return FALSE;
  15. pStack->m_pData[pStack->m_nTopPtr++]=pStackElement;
  16. DBGPRINTF("Push on Stack(Number=%d)",pStack->m_nTopPtr);
  17. return TRUE;
  18. }
  19. void* ISTACK_PopFromStack(IStack* pStack)
  20. {
  21. if(!pStack)
  22. return NULL;
  23. DBGPRINTF("Pop from Stack(Number=%d)",pStack->m_nTopPtr);
  24. if(pStack->m_nTopPtr>0)
  25. return  pStack->m_pData[pStack->m_nTopPtr--];
  26. else
  27. return NULL;
  28. }
  29. void*   ISTACK_GetTopElement(IStack* pStack)
  30. {
  31. if(!pStack)
  32. return NULL;
  33. if(pStack->m_nTopPtr>0)
  34. return pStack->m_pData[pStack->m_nTopPtr-1];
  35. else
  36. return NULL;
  37. }