【牛客带你学编程C++方向】项目练习第7期(参考答案)


参考答案:
template<typename T>
class ArrayStack
{
  public:
      ArrayStack(int s = 10);  //默认的栈容量为10       ~ArrayStack();
  public:
      T top();         //获取栈顶元素
      void push(T t);      //压栈操作
      T pop();         //弹栈操作
      bool isEmpty();      //判空操作
      int size();          //求栈的大小
  private:
      int count;           //栈的元素数量
      int capacity;        //栈的容量
      T * array;           //底层为数组
};
/*构造函数*/ template <typename T>
ArrayStack<T>::ArrayStack(int s = 10)
  :count(0), capacity(s), array(nullptr)
{
  array = new T[capacity];
};
/*析构函数*/ template<typename T>
ArrayStack<T>::~ArrayStack()
{
  if (array)
  {
      delete[]array;
      array = nullptr;
  }
};
/*栈的判空操作*/ template <typename T>
bool ArrayStack<T>::isEmpty()
{
  return count == 0; //栈元素为0时为栈空
};
/*返回栈的大小*/ template <typename  T>
int ArrayStack<T>::size()
{
  return count;
};
/*插入元素*/ template <typename T>
void ArrayStack<T>::push(T t)
{
  if (count != capacity)   //先判断是否栈满
  {
      array[count++] = t;
  }
};
/*弹栈*/ template <typename T>
T ArrayStack<T>::pop()
{
  if (count != 0)  //先判断是否是空栈
  {
      return array[--count];
  }
};
/*获取栈顶元素*/ template <typename T>
T ArrayStack<T>::top()
{
  if (count != 0)
  {
      return array[count - 1];
  }
};

Tips:
全部评论

相关推荐

我要娶个什么名:学长你电脑闹鬼了
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务