为了更好的理解栈的原理,本文分别用数组和链表实现了栈,
关于堆和栈的区别可参考文章:http://blog.youkuaiyun.com/oshirdey/article/details/20154627
工程下载地址:http://download.youkuaiyun.com/detail/oshirdey/7162855
1 数组实现栈:
/*
@ brife:数组实现栈类
*/
#include <Windows.h>
#ifndef ARRAYSTACK_H
#define ARRAYSTACK_H
const UINT DEFUALF_STACK_SIZE = 3;
template <typename T>
class CArrayStack
{
public:
CArrayStack(void)
{
stackNode = new T[DEFUALF_STACK_SIZE];
top = -1;
capacity = DEFUALF_STACK_SIZE;
}
~CArrayStack(void)
{
delete[] stackNode;
stackNode = NULL;
count = 0;
capacity = 0;
}
BOOL isEmpty()
{
return -1 == top;
}
void Push(cons