C语言利用模板实现简单的栈类-创新互联

本文实例为大家分享了C语言利用模板实现简单的栈类(数组和单链表),供大家参考,具体内容如下

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的武川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

主要的功能是实现一个后进先出的列表,有入栈、出栈、返回大小、判空等基本功能

#pragma once
using namespace std;
const int MAXSIZE = 0xfff;
template
class Class_Linkstack
{
  int top;
  type* my_s;
  int max_size;
public:
  Class_Linkstack() :top(-1), max_size(MAXSIZE)
  {
    my_s = new type[max_size]; 
    if (my_s == NULL)
    {
      cerr << "动态存储分配失败!" << endl;
      exit(1);
    }
  }
  Class_Linkstack(int size) :top(-1), max_size(size)
  {
    my_s = new type[size];
    if (my_s == NULL)
    {
      cerr << "动态存储分配失败!" << endl;
      exit(1);
    }
  }
  ~Class_Linkstack() { delete[] my_s; }
  bool Empty_Linkstack();
  void Push_Linkstack(type tp);
  void Pop_Linkstack();
  type Top_Linkstack();
  int Size_Linkstack();  
  void Print_Linkstack();
};


template
void Class_Linkstack::Print_Linkstack()
{
  if (top == -1)
    cout << "空栈" << endl;
  else
  {
    for (int i = 0; i < top+1; i++)
      cout << my_s[i] << '\t';
  }
}

template
bool Class_Linkstack::Empty_Linkstack()
{
  if (top == -1)
    return true;
  else
  {
    return false;
  }
}
template
void Class_Linkstack::Push_Linkstack(type tp)
{
  if (top + 1 < max_size)
    my_s[++top] = tp;
  else
  {
    cout << "栈已满" << endl;
    exit(1);
  }
}
template
void Class_Linkstack::Pop_Linkstack()
{
  if (top == -1)
  {
    cout << "为空栈" << endl;
    exit(1);
  }
  else
  {
    my_s[top--] = 0;
  }
}
template
type Class_Linkstack::Top_Linkstack()
{
  if (top != -1)
    return my_s[top];
  else
  {
    cout << "为空栈" << endl;
    exit(1);
  }
}
template
int Class_Linkstack::Size_Linkstack()
{
  return top + 1;
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:C语言利用模板实现简单的栈类-创新互联
当前URL:http://ybzwz.com/article/cshdcp.html