查看文章
 
7. 数据结构 桟 桟类 Stack_Array 数组实现 2005.01
2006-07-24 17:34
#include "stdio.h"
#include "assert.h"
template <class ELEM> class Stack
{
 public:
  ELEM *ElmList;
  int top;
  int maxsize;
  Stack(int size);
  ~Stack();
  Push(ELEM item);
  ELEM Pop();
  ELEM GetTop();
  bool IsEmpty();
  bool IsFull();
 
};
template <class ELEM>
Stack<ELEM>::Stack(int size)
{
 maxsize = size;
 ElmList = new ELEM[maxsize];
 assert(ElmList != (ELEM *)NULL);
 top = -1;
}
template <class ELEM>
Stack<ELEM>::~Stack()
{
 delete ElmList;
}
template <class ELEM>
bool Stack<ELEM>::IsFull()
{
 return top == maxsize - 1;
}
template <class ELEM>
bool Stack<ELEM>::IsEmpty()
{
 return top == -1;
}
template <class ELEM>
Stack<ELEM>::Push(ELEM item)
{
 assert(!IsFull());
 top ++;
 ElmList[top] = item;
}
template <class ELEM>
ELEM Stack<ELEM>::Pop()
{
 assert(!IsEmpty());
 return ElmList[top --];
}
template <class ELEM>
ELEM Stack<ELEM>::GetTop()
{
 assert(!IsEmpty());
 return ElmList[top];
}
void main()
{
 Stack<int> s(10);
 s.Push(1);
 s.Push(2);
 s.Push(3);
 s.Push(4);
 s.Push(5);
 printf("%d ", s.Pop());
 printf("%d ", s.Pop());
 printf("%d ", s.Pop());
 printf("%d ", s.Pop());
 printf("%d ", s.Pop());
 printf("\n\n");
}

类别:数据结构||添加到搜藏 |分享到i贴吧|浏览(183)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu