基本思想:顺序栈相当于顺序表的子集,是限制了相关操作,只允许在栈顶操作元素,基本的操作有入栈、出栈、获取栈顶元素等。
  和链栈相比03除了不能动态增长外(目前为止),其余的操作时间复杂度都一样。
  实现功能:
  1.void InitStack(); 初始化栈
  1).new一块连续的空间存放数据。
  2).初始化栈顶指针(这里的指针并不是真的指针,而是一个指示变量)
  如图:

  2.void DestroyStack(); 销毁栈
  1).delete m_data。
  2).把栈顶指针指向-1
  3.bool IsEmpty(); 栈是否为空
  如果top == -1 则栈为空
  4.bool IsFull(); 栈是否满了
  如果top == stackSize - 1 则栈已满
  5.int GetSize(); 获取当前栈的长度
  直接返回top + 1
  6.void Push(T e); 入栈
  m_data[++m_top] = e; 这个操作之前一定要判断栈是否满,否则会出现数组越界。
  如图:

  7.void Pop(); 出栈(不返回栈顶元素)
  顺序栈中,不需要删除元素,只需要改变栈顶指针即可
  如图:

  8.T PopE(); 出栈(返回栈顶元素)
  9.T GetTop(); 获取栈顶元素
  10.void Print(); 遍历栈
  11.void ClearStack(); 清空栈
  只需要把top指向-1即可