重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例为大家分享了C语言利用模板实现简单的栈类(数组和单链表),供大家参考,具体内容如下
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的武川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!主要的功能是实现一个后进先出的列表,有入栈、出栈、返回大小、判空等基本功能
#pragma once using namespace std; const int MAXSIZE = 0xfff; templateclass 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许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。